LIKE, vise zapisa
Prvo da napomenem da nisam znao kako jasnije da napisem naslov, pa ako neko ima ideju neka zameni, hvala ...
Imam sledeci problem: Postoji tablica sa X zapisa, struktura otprilike izgleda ovako: |id|title|text|code_name| ------------------------- 1|title1|neki_text1|XDJENOEP| 2|title2|neki_text2|DJE13NJD| 3|title3|neki_text3|PLKAZYW| I sad, imam drugu tablicu gde se cuvaju delovi polja code_name, npr: E13, ZYW. Te, da kazemo delove polja code_name, vadim jednim kverijem. Nakon toga mi je potrebno da iz prve tablice izvucem odredjen broj zapisa (neka bude 1) ali tako da code_name bude "LIKE" onaj deo koji sam izvukao iz druge tablice. Za sada izgleda jednostavno, za svaki deo code_name koji sam izvukao napisem kveri tipa: "SELECT * FROM table1 WHERE code_name LIKE '%E13%' LIMIT 1". Ovo pustim u petlju za svaki zapis i to je to. Ali problem je cu imati mnogo zapisa i to ce da oduzme previse vremena, zanima me da li postoji nekin nacin da se stavi vise LIKE uslova i da se za svaki izvuce po jedan zapis ... ? Nadam se da ste razumeli ? I da neko ima ideju kako ovo da resim ... ? Hvala, Ivan |
mozesh ti da stavish vishe uslova u upit
SELECT * FROM table1 WHERE code_name LIKE '%E13%' OR code_name LIKE '%ZYW%' OR code_name LIKE.. |
Da, ali to ne znaci da cu da dobijem sigurno jedan zapis koji sadrzi "E13" i jedan zapis koji sadrzi "ZYW". Vec mogu da dobijem dva sa istim delom code_name, zavisno vec od redosleda zapisa u bazi i ostalih uslova.
Nadam se da je sada jasnije sta mi je potrebno ... |
distinct?
|
Hm, nisam siguran da sam ispravno shvatio sta zelis, ali mozda ti ovo moze pomoci?
Kôd:
select cn.* |
A nešto na foru:
Kôd:
SELECT * FROM delovi d |
Hm nijedno resenje mi ne pomaze, ajd da probam da objasnim ponovo:
Tablica 1: |id|title|text|code_name| ------------------------- 1|title1|neki_text1|XDJENOEP| 2|title2|neki_text2|DJEN3NJD| 3|title3|neki_text3|PLKAZYW| Tablica2: |id|code_pieces1|code_pieces2| ------------------------- 1|XDJ|JEN| 2|JE1|ZYW| Ono sto prvo uradim je da selektujem iz tablice 2 ove delove koda i pustim to u petlju. Dakle za prvi krug imacemo "XDJ" i "JEN". Sada mi treba kveri koji ce da izvuce, iz tablice 1, jedan zapis koji u polju code_name ima deo LIKE "XDJ" i jedan zapis koji ima deo LIKE "JEN". Ovo moze lako da se izvede sa dva kverija ali je pitanje kako sa jednim ... Dakle nesto ovako: "SELECT * FROM tablica1 WHERE code_name LIKE 'XDJ' OR code_name LIKE 'JEN' LIMIT 2" I da ovaj kveri vrati: |id|title|text|code_name| ------------------------- 1|title1|neki_text1|XDJENOEP| 2|title2|neki_text2|DJEN3NJD| Ovo ce u nekim slucajevima i da vrati ovakav rezultat ali nece uvek, tj nece kada bude bilo vise "slicnih" zapisa. Tada ce da vrati npr dva zapisa LIKE 'XDJ', a distinct ne mogu da radim jer je polje "slicno" a ne isto ... Jasnije sada ? :) Hvala ... |
Citat:
edit, sad mislim da razumem, neces da ti dva puta vrati isti row? |
A nesto kao
Kôd:
SELECT t1.code_pieces1, t1.code_pieces2, t2.code_name FROM tablica2 as t1 |
U prvoj poruci nisi pomenuo da imaš dve kolone sa delovima koda. Je l' to konačno dve kolone ili n kolona? Zašto ti to nije normalizovano? Koji problem ustvari rešavaš?
|
Vreme je GMT +2. Trenutno vreme je 06:18. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.