MySQL atvejų jautri

Tai yra nustatyta šioje svetainėje anksčiau, bet negalėjau rasti pakankamo atsakymo. Jei pateikiu užklausą kaip:

 Select Seller from Table where Location = 'San Jose' 

Kaip aš galiu jį sugrąžinti tik pardavėjus, turinčius San Chosė vietovę vietoj san jose ar kažko kito?

134
22 окт. nustatė Michael Liao spalio 22 d 2011-10-22 08:42 '11 at 8:42 2011-10-22 08:42
@ 3 atsakymai

Pagal nutylėjimą „MySQL“ užklausos nėra didžiosios ir mažosios raidės. Žemiau yra paprasta užklausa, kurioje ieškoma „vertės“. Tačiau jis grąžins „VALUE“, „value“, „VaLuE“ ir kt.

 SELECT * FROM `table` WHERE `column` = 'value' 

Geros naujienos yra tai, kad, jei reikia atlikti didžiosios ir mažosios raidės užklausą, tai labai paprasta padaryti su BINARY operatoriumi, kuris verčia lyginti baitus pagal baitą:

 SELECT * FROM `table` WHERE BINARY `column` = 'value' 
367
22 окт. James mason atsakymas, pateiktas spalio 22 d 2011-10-22 08:49 '11 at 8:49 2011-10-22 08:49

Gerinti puikų Jameso atsakymą:

Geriau įdėti BINARY vietoj konstantos:

 SELECT * FROM `table` WHERE `column` = BINARY 'value' 

BINARY įdėjimas prieš column neleis jums naudoti jokių stulpelių šiame stulpelyje.

42
07 апр. Atsakymas, kurį pateikė Shenxian Apr 07 2016-04-07 06:48 '16 at 6:48 2016-04-07 06:48

Nors pateiktas atsakymas yra teisingas, ar galiu pasiūlyti, kad jei jūsų stulpelyje būtų saugomos didžiosios ir mažosios raidės, jūs perskaitysite dokumentaciją ir atitinkamai pakeisite lentelę.

Mano atveju tai reiškia, kad mano stulpelis buvo apibrėžiamas kaip:

 `tag` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' 

Tai, mano nuomone, pageidautina koreguoti jūsų prašymus.

13
21 апр. Atsakyti Thomas Clowes balandžio 21 d 2016-04-21 14:59 '16 at 14:59 pm 2016-04-21 14:59

Kiti klausimai apie „ žymes arba „ Klauskite“