Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да работи MySQL, нечувствителен към малки и малки букви и нечувствителен към акцент в UTF-8

Вече се опитахте да използвате съпоставяне без акценти за вашето търсене и подреждане.

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

Работата е във вашето NAME колоната изглежда се съхранява в latin1 (8-битов) набор от знаци. Ето защо mySQL ви роптае така:

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

Може да получите желаните резултати, ако опитате

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

Но внимавайте!

Когато използвате какъвто и да е вид функция (в този пример, CONVERT) в колоната в израз WHERE, вие побеждавате опитите на MySQL да оптимизира вашето търсене с индекси. Ако този проект ще стане голям (тоест, ако ще имате много редове във вашите таблици), трябва да съхранявате данните си във формат utf8, а не latin1. (Вероятно вече знаете, че вашият LIKE '%whatever%' думата за търсене също побеждава индексирането на MySQL.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SELECT / GROUP BY - сегменти от време (10 секунди, 30 секунди и т.н.)

  2. Помощ за MySql заявка - Редовете, държащи груповия максимум на определена колона

  3. Изпълнете SQL скрипт за създаване на таблици и редове

  4. Как да определя максималния размер на транзакцията в MySQL?

  5. Динамично име на колона, използващо подготвен израз + sql заявка с променлива, съдържаща 's