Vraag & Antwoord

Webprogrammeren & scripting

[MySQL] Case-sensetive ENUM field

3 antwoorden
  • Hallo mensen!!! ik heb in een database een enum field gemaakt met de volgende opties: 'a','b','c','A','B','C' Als ik echter de waarde als volgt instel: UPDATEteams SET MyEnum= 'A' WHERE MyKey = '3'; Dan geeft "SELECT MyEnum FROM teams WHERE MyKey = '3';" Het volgende resultaat: a, ipv A Blijkbaar is MyEnum niet hoofdlettergevoelig!!! Wat doe ik hieraan??? Thanks!!!
  • [url=http://www.mysql.com/doc/en/ENUM.html]Lettercase is irrelevant when you assign values to an ENUM column.[/url] Bij het invoeren van een waarde in een enum-kolom wordt de eerst gevonde overeenkomstige waarde genomen (case-insensitive) Maw: in jouw voorbeeld wordt 'a' (de kleine) als eerste gevonden, ditzelfde gebeurt met 'b' en 'c'. Als je de volgorde 'a', 'B', 'c', 'A', 'b', 'C' hebt resulteerd dit in: set MyEnum = 'a' => 'a' set MyEnum = 'A' => 'a' set MyEnum = 'b' => 'B' set MyEnum = 'B' => 'B' set MyEnum = 'c' => 'c' set MyEnum = 'C' => 'c' Oplossing ? A1, A2, B1, B2, C1, C2 maakt het onderscheid iets duidelijk en gevaar voor typos stukken kleiner. Maar dit is afhankelijk van de rest van je scripts [/url]
  • Kijk eens of je iets kunt met de BINARY operator. Ik heb het volgende wel eens gebruikt: "SELECT * FROM $table WHERE [b:57407f92f0]BINARY[/b:57407f92f0] $selector = ?";

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.