Gde je greska u ovom upitu

poruka: 9
|
čitano: 3.728
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
Gde je greska u ovom upitu

SELECT * FROM korisnici WHERE ime LIKE '%Dragan%' AND prezime LIKE 'N%'

 

Ovaj upit koristim kod pretrage korisnika.

Znaci trebalo bi da mi prikaze sve korisnike cije je ime Dragan, a prezime im pocinje na N.

Mislim da je ovaj upit dobar, ali nece, ne vraca mi nista.

Kad postavim kod prezimena da bude % na obe strane %N% tad vraca rezultate, ali ne one koje zelim, vraca i one korisnike koje u prezimenu imaju bilo gde slovo N.

 

Poruka je uređivana zadnji put ned 26.12.2010 13:23 (acke_volce).
 
0 0 hvala 0
16 godina
neaktivan
offline
RE: Gde je greska u ovom upitu

Upit je OK i stvarno nije jasno zašto ne bi vratio podatke. S time da si stavio da vraća sve one koje u imenu imaju Dragan a ne samo one koje se tako zovu, inače si mogao koristiti ime = 'Dragan'.

Koja baza, koji podaci? teško je ovako bez podataka skužiti o čemu se radi. 

16 godina
neaktivan
offline
RE: Gde je greska u ovom upitu
Tvrdy kaže...

Upit je OK i stvarno nije jasno zašto ne bi vratio podatke. S time da si stavio da vraća sve one koje u imenu imaju Dragan a ne samo one koje se tako zovu, inače si mogao koristiti ime = 'Dragan'.

Koja baza, koji podaci? teško je ovako bez podataka skužiti o čemu se radi. 

 

Hvala ti Tvrdy sto si se javio!

I mene buni zaista,  a sad primetih jos nesto.

 

Baza je: Верзија MySQL клијента: 5.0.67, tip tabele imenik je MyISAM, sortiranje: utf8_unicode_ci, tabela ima kolone: id, ime, prezime, pozivni, broj, adresa, idmesta. Sva polja su varchar sem, id i idmesta.

 

Primetih sad i kad izbacim uslov LIKE '%Dragan%', izbacuje mi neka prezimena koja pocinju na N, ali ne sva??

 

Sad se pitam, da nije mozda zbog previse redova  u tabeli, ima ih ok 20.000?

Upis u tabeli "imenik" sam izvrsio iscitavajuci podatke iz TXT fajlova.

15 godina
neaktivan
offline
RE: Gde je greska u ovom upitu

Da nemaš neki space viška na početku prezimena? Probaj dodati u upit:

 

trim(prezime) like 'N%'

16 godina
neaktivan
offline
RE: Gde je greska u ovom upitu
mrkač kaže...

Da nemaš neki space viška na početku prezimena? Probaj dodati u upit:

 

trim(prezime) like 'N%'

 

@mrkač

hvala ti!

Probao sam s trim() direktno u upitu, ali nece, ali sam iscitao prezimena iz baze, pa ih ponovo upisao propustajuci ih kroz funkciju trim() i sad radi.

 

Hvala jos jednom!

14 godina
neaktivan
offline
Gde je greska u ovom upitu

Da ne otvaram novu temu imam jedan problem u SQL upitu. Ako netko zna u čemu je problem. Izbaciva mi ovu poruku SQL upit:


INSERT INTO `narudzbenica` ( `narudzbenica` , `korisnik` , `naruceno` , `status` )
VALUES (
'0', 'ringo', '2009-01-01', '0'
), (
'1', 'admin', '2009-02-01', '2'
), (
'2', 'jlo', '2009-03-11', '1'
), (
'3', 'john', '2009-01-23', '0'
), (
'4', 'pgreen', '2009-01-28', '1'
), (
'5', 'tjones', '2009-01-27', '2'
), (
'6', 'jdean', '2009-06-11', '0'
), (
'7', 'janis', '2009-01-21', '1'
);


MySQL je poručio:
#1452 - Cannot add or update a child row: a foreign key constraint fails (`iwa_2008_kz_projekt`.`narudzbenica`, CONSTRAINT `FK_narudzbenica_2` FOREIGN KEY (`status`) REFERENCES `vrsta_statusa` (`status`) ON DELETE NO ACTION ON UPDATE CASCADE)

 

  Ovo je upit za narudžbenicu i vrsta_statusa :insert into `narudzbenica` (`narudzbenica`,`korisnik`,`naruceno`,`status`) VALUES 
('0','ringo','2009-01-01','0'),
('1','admin','2009-02-01','2'),
('2','jlo','2009-03-11','1'),
('3','john','2009-01-23','0'),
('4','pgreen','2009-01-28','1'),
('5','tjones','2009-01-27','2'),
('6','jdean','2009-06-11','0'),
('7','janis','2009-01-21','1');

 

insert into `vrsta_statusa` (`status`,`naziv`) values
(0,'Otvoreno'),
(1,'Nerealizirano'),
(2,'Zatvoreno');

 

 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Gde je greska u ovom upitu

Ajd napravi print screen tih tabela.

I da, nije valjda da nemas tabelu "korisnik"? Pretpostavljam da s razlogom Id nisi stavio da se automatski povecava za 1

14 godina
neaktivan
offline
Re: Gde je greska u ovom upitu

Ovo mi je glavni upit za kreiranje baze i tablica:

CREATE DATABASE IF NOT EXISTS iwa_2008_kz_projekt DEFAULT CHARACTER SET
utf8;
USE iwa_2008_kz_projekt;
create user "iwa_2008";
GRANT DELETE, INSERT, SELECT, UPDATE ON `iwa_2008_kz_projekt`.*
TO 'iwa_2008'@'localhost' IDENTIFIED BY 'FOI';

DROP TABLE IF EXISTS `vrsta_robe`;
CREATE TABLE `vrsta_robe` (
`vrsta` int(10) unsigned zerofill NOT NULL DEFAULT '0',
`naziv` varchar(20) NOT NULL,
PRIMARY KEY (`vrsta`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `vrsta_korisnika`;
CREATE TABLE `vrsta_korisnika` (
`vrsta` int(11) NOT NULL,
`naziv` varchar(20) NOT NULL,
PRIMARY KEY (`vrsta`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `vrsta_statusa`;
CREATE TABLE `vrsta_statusa` (
`status` float NOT NULL,
`naziv` varchar(20) NOT NULL,
PRIMARY KEY (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `korisnik`;
CREATE TABLE `korisnik` (
`korisnik` varchar(15) NOT NULL DEFAULT ' ',
`ime` varchar(15) NOT NULL,
`prezime` varchar(20) NOT NULL,
`lozinka` varchar(10) NOT NULL,
`email` varchar(40) DEFAULT NULL,
`vrsta` int(11) NOT NULL,
PRIMARY KEY (`korisnik`) USING BTREE,
KEY `FK_korisnik_1` (`vrsta`),
CONSTRAINT `FK_korisnik_1` FOREIGN KEY (`vrsta`) REFERENCES `vrsta_korisnika` (`vrsta`) ON DELETE NO ACTION ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `roba`;
CREATE TABLE `roba` (
`roba` int(10) unsigned NOT NULL,
`naziv` varchar(99) NOT NULL,
`vrsta` int(10) unsigned NOT NULL,
`opis` varchar(255) DEFAULT NULL,
`url` varchar(200) DEFAULT NULL,
`url_foto` varchar(200) DEFAULT NULL,
`korisnik` varchar(15) NOT NULL,
`cijena` double unsigned NOT NULL DEFAULT '0',
`evidentirano` date NOT NULL,
`jm` varchar(7) NOT NULL,
`kolicina` double NOT NULL DEFAULT '0',
PRIMARY KEY (`roba`),
KEY `FK_roba_1` (`korisnik`),
KEY `FK_roba_2` (`vrsta`),
CONSTRAINT `FK_roba_1` FOREIGN KEY (`korisnik`) REFERENCES `korisnik` (`korisnik`) ON DELETE NO ACTION ON UPDATE CASCADE,
CONSTRAINT `FK_roba_2` FOREIGN KEY (`vrsta`) REFERENCES `vrsta_robe` (`vrsta`) ON DELETE NO ACTION ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `narudzbenica`;
CREATE TABLE `narudzbenica` (
`narudzbenica` int(10) unsigned NOT NULL DEFAULT '1',
`korisnik` varchar(15) NOT NULL,
`naruceno` date NOT NULL,
`status` float unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`narudzbenica`),
KEY `FK_narudzbenica_1` (`korisnik`),
KEY `FK_narudzbenica_2` (`status`),
CONSTRAINT `FK_narudzbenica_1` FOREIGN KEY (`korisnik`) REFERENCES `korisnik` (`korisnik`) ON DELETE NO ACTION ON UPDATE CASCADE,
CONSTRAINT `FK_narudzbenica_2` FOREIGN KEY (`status`) REFERENCES `vrsta_statusa` (`status`) ON DELETE NO ACTION ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `stavka`;
CREATE TABLE `stavka` (
`narudzbenica` int(10) unsigned NOT NULL DEFAULT '1',
`stavka` int(10) unsigned NOT NULL DEFAULT '1',
`roba` int(10) unsigned NOT NULL,
`kolicina` double NOT NULL DEFAULT '0',
PRIMARY KEY (`narudzbenica`, `stavka`),
KEY `FK_stavka_1` (`narudzbenica`),
KEY `FK_stavka_2` (`roba`),
CONSTRAINT `FK_stavka_1` FOREIGN KEY (`narudzbenica`) REFERENCES `narudzbenica` (`narudzbenica`) ON DELETE NO ACTION ON UPDATE CASCADE,
CONSTRAINT `FK_stavka_2` FOREIGN KEY (`roba`) REFERENCES `roba` (`roba`) ON DELETE NO ACTION ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `primka`;
CREATE TABLE `primka` (
`broj` int(10) unsigned NOT NULL DEFAULT '1',
`korisnik` varchar(15) NOT NULL,
`roba` int(10) unsigned NOT NULL,
`kolicina` double NOT NULL DEFAULT '0',
`primljeno` date NOT NULL,
PRIMARY KEY (`broj`),
KEY `FK_primka_1` (`korisnik`),
KEY `FK_primka_2` (`roba`),
CONSTRAINT `FK_primka_1` FOREIGN KEY (`korisnik`) REFERENCES `korisnik` (`korisnik`) ON DELETE NO ACTION ON UPDATE CASCADE,
CONSTRAINT `FK_primka_2` FOREIGN KEY (`roba`) REFERENCES `roba` (`roba`) ON DELETE NO ACTION ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `izdatnica`;
CREATE TABLE `izdatnica` (
`broj` int(10) unsigned NOT NULL DEFAULT '1',
`narudzbenica` int(10) unsigned NOT NULL DEFAULT '1',
`stavka` int(10) unsigned NOT NULL DEFAULT '1',
`roba` int(10) unsigned NOT NULL,
`kolicina` double NOT NULL DEFAULT '0',
PRIMARY KEY (`broj`),
KEY `FK_izdatnica_1` (`narudzbenica`),
KEY `FK_izdatnica_2` (`roba`),
CONSTRAINT `FK_izdatnica_1` FOREIGN KEY (`narudzbenica`) REFERENCES `narudzbenica` (`narudzbenica`) ON DELETE NO ACTION ON UPDATE CASCADE,
CONSTRAINT `FK_izdatnica_2` FOREIGN KEY (`roba`) REFERENCES `roba` (`roba`) ON DELETE NO ACTION ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

14 godina
neaktivan
offline
Gde je greska u ovom upitu

probaj ovako

 

SELECT * FROM korisnici WHERE ime LIKE "Dragan" AND prezime LIKE "N*"

 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice