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

Отстраняване на неизправности Грешка с незаконен микс от съпоставяне в mysql

Това обикновено се причинява от сравняване на два низа с несъвместимо съпоставяне или от опит за избор на данни от различно съпоставяне в комбинирана колона.

Клаузата COLLATE ви позволява да посочите съпоставянето, използвано в заявката.

Например следният WHERE клаузата винаги ще дава грешката, която сте публикували:

WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs

Вашето решение е да посочите споделено съпоставяне за двете колони в заявката. Ето пример, който използва COLLATE клауза:

SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;

Друга възможност е да използвате BINARY оператор:

BINARY str е съкращението за CAST(str AS BINARY).

Вашето решение може да изглежда така:

SELECT * FROM table WHERE BINARY a = BINARY b;

или,

SELECT * FROM table ORDER BY BINARY a;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Каква е грешката Всяка извлечена таблица трябва да има свой собствен псевдоним в MySQL?

  2. Уникално ограничение, което позволява празни стойности в MySQL

  3. Превърнете резултата от базата данни в масив

  4. Библиотеката не е заредена:грешка libmysqlclient.16.dylib при опит за стартиране на 'rails server' на OS X 10.6 с mysql2 gem

  5. php код за тестване на pdo е наличен?