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

Accentufølsom søgeforespørgsel i MySQL

Du kan ændre sorteringen ved kørsel i sql-forespørgslen,

...where title like '%torun%' collate utf8_general_ci

men pas på, at ændring af sorteringen under kørsel giver afkald på muligheden for at mysql bruger et indeks, så ydeevnen på store borde kan være forfærdelig.

Eller du kan kopiere kolonnen til en anden kolonne, såsom searchable_title , men skift sammenstillingen på den. Det er faktisk almindeligt at lave denne type ting, hvor man kopierer data, men har dem i en lidt anderledes form, der er optimeret til en bestemt arbejdsbyrde/formål. Du kan bruge triggere som en god måde at holde de duplikerede kolonner synkroniseret. Denne metode har potentiale til at fungere godt, hvis den indekseres.

Bemærk - Sørg for, at din db virkelig har disse tegn og ikke html-enheder. Også tegnsættet for din forbindelse har betydning. Ovenstående forudsætter, at den er sat til utf8, for eksempel via set navne som set names utf8

Hvis ikke, har du brug for en introducer for den bogstavelige værdi

...where title like _utf8'%torun%' collate utf8_general_ci

og selvfølgelig skal værdien i de enkelte anførselstegn faktisk være utf8-kodet, selvom resten af ​​sql-forespørgslen ikke er det.



  1. Forbind SAP IQ til SQL Server

  2. Sådan forbindes C++-programmer til MariaDB

  3. Sådan fungerer Sind() i PostgreSQL

  4. Sådan fungerer UPPER()-funktionen i MySQL