WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Case sensitive-villkor i mysql-fråga (https://www.wn.se/forum/showthread.php?t=19222)

etanders 2007-02-09 12:49

Jag har en tabell i en mysql-databas som innehåller kolumnen orderstatus. Bland de olika värden som förekommer i den kolumnen finns både sådana som börjar på "E" och sådana som börjar på "e".

När jag kör sql-frågan

Kod:

SELECT * FROM minTabell WHERE LEFT(orderstatus, 1) = "E"
får jag med både de rader som börjar på "E" och på "e". Precis samma resultat (d.v.s. ingen skillnad) får jag från frågan

Kod:

SELECT * FROM minTabell WHERE LEFT(orderstatus, 1) = "e"
Finns det något sätt att göra sökningen case sensitive? (Villkoret orderstatus LIKE "E%" är inte heller case sensitive)


EDIT: Glömde säga att kolumnen är av typen CHAR(3)

Eddie 2007-02-09 12:54

Du kan ju testa att köra
Select ... where orderstatus collate latin1_general_cs like 'E%';

etanders 2007-02-09 13:00

Nix, det funkar inte det heller. Men du gav mig en ledtråd att fortsätta utforska - om igen annan har en lösning på rak arm.

EDIT: Eller rättare sagt, det funkar inte alls...

etanders 2007-02-09 13:14

Måste ha skrivit något fel när jag testade nyss. Det fungerar att skriva
Kod:

SELECT * FROM minTabell WHERE orderstatus COLLATE latin1_general_cs LIKE "e%"
Det funkar också med
Kod:

SELECT * FROM minTabell WHERE LEFT(orderstatus, 1) COLLATE latin1_general_cs = "e"
Tack för hjälpen Eddie!


Alla tider är GMT +2. Klockan är nu 19:58.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson