Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
joedoe - 07-02-2006 10:13 mysql , concat problem
Witam
Prosze o pomoc w rozwiazaniu problemu. Mam tabele taka:
ID | Nazwa | Adres
zapytanie jest takie
SELECT * FROM tabela WHERE CONCAT(Nazwa,' ',Adres) LIKE "%szk%katowice%"
takie zapytanie działa ale jest wrazliwe na wielkość literek wyglada jakby wynik CONCAT byl binarny :(
jezeli zapytam tak
SELECT * FROM tabela WHERE Nazwa LIKE "%szk%" AND Adres LIKE "%katowice%" wszystko dziala świetnie tyle ze nie spelnia to moich oczekiwan
jak to rozwiązać ??
z gory dziekuje Joe
Bartek Dajewski - 07-02-2006 16:43
Cześć!
Użytkownik "joedoe" <joedoe@joedoe.net.wytnijto> napisał w wiadomości news:ds7cfd$eta$1@achot.icm.edu.pl... [...] > zapytanie jest takie > > SELECT * FROM tabela WHERE CONCAT(Nazwa,' ',Adres) LIKE "%szk%katowice%" > > takie zapytanie działa ale jest wrazliwe na wielkość literek
W takim razie użyj funkcji upper lub lower. Albo spróbuj z "where ... like .... collate ..._ci".
> wyglada jakby wynik CONCAT byl binarny :(
Czy kolumny Nazwa i Adres mają ten sam zestaw znaków? A może to chodzi o spację (drugi argument do concat). Spróbuj na chwilę bez tej spacji. Jeśli to pomoże - zastąp spację np. przez cast(' ' as char). Sam nie wiem ... to tylko takie pomysły ...
> jezeli zapytam tak > > SELECT * FROM tabela WHERE Nazwa LIKE "%szk%" AND Adres LIKE "%katowice%" > wszystko dziala świetnie tyle ze nie spelnia to moich oczekiwan
Czy dobrze się domyślam, że przykładowe "katowice" mogą wystąpić zarówno w nazwie jak i w adresie i chcesz widzieć rekordy niezależnie od położenia szukanego słowa (nawet jeśli w adresie będziesz miał inne miasto)?
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona