Kom ihåg mig?

Case sensitive-villkor i mysql-fråga

Ämnesverktyg Visningsalternativ
Oläst 2007-02-09, 12:49 #1
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
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)
etanders är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-09, 12:54 #2
Eddie Eddie är inte uppkopplad
Medlem
 
Reg.datum: Jan 2005
Inlägg: 83
Eddie Eddie är inte uppkopplad
Medlem
 
Reg.datum: Jan 2005
Inlägg: 83
Du kan ju testa att köra
Select ... where orderstatus collate latin1_general_cs like 'E%';
Eddie är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-09, 13:00 #3
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
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 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-09, 13:14 #4
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
etanders etanders är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 160
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!
etanders är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 07:32.

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