|
03.11.2010., 22:13 | #1 | ||||
/
Datum registracije: Oct 2006
Lokacija: /
Postovi: 2,053
|
MySQL upit (LIKE)
Imam string koji izgleda npr. ovako Citiraj:
Citiraj:
Citiraj:
Citiraj:
|
||||
03.11.2010., 22:30 | #2 |
xampp rulez
Datum registracije: May 2009
Lokacija: Zagreb
Postovi: 90
|
U ovome stringu i zarez je samo jedan znak u stringu poput jedinice pa ne vidim razloga zašto ne bi stavio %,11,%. Tko ćeš naći sve retke gdje se pojavljuje "11". Ako te stringove vadiš van i zarezi ti smetaju jednostavno ih trimaj. Ne vidim zašto ti to ne odgovara. |
|
|
Oglas
|
|
03.11.2010., 22:38 | #3 |
Adrenaline junkie
Datum registracije: Apr 2006
Lokacija: Doboj - Banja Luka / Republika Srpska
Postovi: 3,575
|
Problem je ako se zadesi neka necjelobrojna vrijednost tipa 24,11 ili 11,99. Ne mogu se sada sjetiti da me ubiješ, ali de probaj ovo Code:
SELECT * FROM XX WHERE YY LIKE '!11!' escape '!';
__________________
Lenovo ThinkPad W530 - Core i7 3840QM, 32 GB RAM, SSD Samsung 512 GB, nVidia Quadro K1000M 2 GB, 15.6" 1920x1080 IPS, baterija 9 ćelija Zadnje izmijenjeno od: Milentije. 03.11.2010. u 22:45. |
03.11.2010., 22:57 | #4 | |
/
Datum registracije: Oct 2006
Lokacija: /
Postovi: 2,053
|
Citiraj:
nešto drugo? ne radi, ništa ne pronalazi. ni ,11, ni ,11 ni 11, . |
|
03.11.2010., 23:19 | #5 |
Adrenaline junkie
Datum registracije: Apr 2006
Lokacija: Doboj - Banja Luka / Republika Srpska
Postovi: 3,575
|
Tek sad vidjeh da sam pogresno razumio "zadatak" prvi put kad sam ga pogledao. Nekako nisam baš siguran da je ovo izvodivo na neki dugi način osim onog koji si već naveo. On unos u tom polju gledao kao jednu vrijednost (string) i kada mu zadaš da traži *11* on tu ima više "poklapanja" (11, 111, 111). Na šta se odnose vrijednosti tog polja? Možeš li uraditi normalizaciju pa da toj još malo raščlaniš tako da ti svaka vrijednost između zareza ima svoje polje?
__________________
Lenovo ThinkPad W530 - Core i7 3840QM, 32 GB RAM, SSD Samsung 512 GB, nVidia Quadro K1000M 2 GB, 15.6" 1920x1080 IPS, baterija 9 ćelija |
03.11.2010., 23:25 | #6 | |
/
Datum registracije: Oct 2006
Lokacija: /
Postovi: 2,053
|
Citiraj:
iako mi se to čini puno previše nepotrebnih informacija, moram si dati još malo više truda pa postaviti zarez na početak i kraj, mislio sam to izbjeći ali ako nejde, nejde... hvala svejedno |
|
04.11.2010., 17:14 | #7 |
the letter
Datum registracije: Sep 2005
Lokacija: 127.0.0.1
Postovi: 794
|
Kako se konkatenira na MySqlu? Sa + (Sql Server) ili sa || (Oracle)? Ajde recimo da je +. Ionako moraš raditi full table scan jer je like napisan sa početnim postotkom. Zašto onda ne napraviš nešto poput ovoga: SELECT * FROM XX WHERE ','+string+',' LIKE '%,11,%' Upravo sam to probao na Oracleu i stvar radi...
__________________
Exception up = new Exception("Illegal operation."); throw up; Zadnje izmijenjeno od: doublev. 04.11.2010. u 17:19. |
04.11.2010., 19:38 | #8 |
xampp rulez
Datum registracije: May 2009
Lokacija: Zagreb
Postovi: 90
|
MySQL ima i "Regular Expressions" pa probaj s time. http://dev.mysql.com/doc/refman/5.1/en/regexp.html |
|
|
Oglas
|
|
|
|