Portál AbcLinuxu, 10. listopadu 2025 06:00
SELECT IF(STRCMP(jazyk, 'cs' ) , cesky, 'nijak') AS hodnota ... vždy vrátí sloupec cesky bez ohledu na jazykKde dělám chybu a jak to přinutit dělat to co potřebuji?
SELECT IF(jazyk='cs', cesky, 'nijak') AS hodnota ...také nefunguje. Ve sloupci jazyk se samozřejmě střídá hodnota cs s hodnotami dalšími, abych viděl jak to funguje (resp. zde nefunguje).
declare jazyk varchar(5);
select 'cs' into @jazyk;
select
nejaky_sloupec,
case
when @jazyk = 'cs' then cesky
when @jazyk = 'en' then anglicky
else nijak
end,
dalsi_sloupec
from...
Aspon doufam, ze to nepletu. Konzultuj s manualem.
Dejv
If expr1 is TRUE (expr1 <> 0 and expr1 <> NULL) then IF() returns expr2; otherwise it returns expr3a
STRCMP() returns 0 if the strings are the sametak bud zmenit poradie expr2 a expr3 (nijak, cesky), alebo znegovat expr1 na !strcmp() .. na mysql 5.1.56 funguje korektne; pokial to je stale nekorektne, budu imho problem v hodnotach a nie v mysql
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.