sql >> Database teknologi >  >> RDS >> Mysql

Sådan fungerer MySQL-ufølsomme for store og små bogstaver og accentufølsomme i UTF-8

Du har allerede forsøgt at bruge en accentufølsom sortering til din søgning og bestilling.

http://dev.mysql.com/doc /refman/5.0/da/charset-collation-implementations.html

Sagen er, dit NAME kolonne ser ud til at være gemt i latin1 (8-bit) tegnsættet. Det er derfor, mySQL brokker sig sådan her:

  COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'

Du får muligvis de resultater, du ønsker, hvis du prøver

 WHERE CONVERT(p.NAME USING utf8) LIKE _utf8 '%jose%' COLLATE utf8_general_ci;

Men vær forsigtig!

Når du bruger enhver form for funktion (i dette eksempel CONVERT) på kolonnen i en WHERE-sætning, besejrer du MySQL's forsøg på at optimere din søgning med indekser. Hvis dette projekt bliver stort (det vil sige, hvis du vil have mange rækker i dine tabeller), skal du gemme dine data i utf8-format, ikke latin1. (Du ved sikkert allerede, at din LIKE '%whatever%' søgetermen besejrer også MySQL's indeksering.)



  1. hvad er ændringerne i mysql 8 resultat rowset case?

  2. PHP-kode til indsæt afkrydsningsfeltværdi i specifik kolonne på mysql med vælg formular

  3. gem numpy array i mysql

  4. fange DB-undtagelse i JSF+EJB-applikation