MySQL-запрос не работает с NOT IN
Я пишу запрос, который не работает правильно
Мой запрос:
SELECT *
FROM admin_marker
WHERE admin_marker.city NOT IN (SELECT target FROM messsage)
В нем говорится
# 1267 - Незаконное сочетание сортировок
(utf8_general_ci, IMPLICIT) и
(utf8_unicode_ci, IMPLICIT) для операции '='
Ответы
Ответ 1
Проблема, с которой вы сталкиваетесь, связана с несовместимыми сопоставлениями между двумя таблицами. Один из способов обойти это - использовать предложение COLLATE
в вашем запросе:
SELECT *
FROM admin_marker
WHERE admin_marker.city NOT IN (SELECT target COLLATE utf8_general_ci
FROM messsage)
Демо здесь
Ответ 2
проблема заключается в сопоставлении между двумя таблицами, поэтому, пожалуйста, попробуйте COLLATE для этого, возможно, это легко разрешить с помощью справки COLLATE.
SELECT * FROM admin_marker WHERE admin_marker.city NOT IN (SELECT target COLLATE utf8_general_ci FROM messsage)
а также проверьте, что база данных того же самого
несовместимой сортировки или попыткой выбора данных различной сортировки в комбинированный столбец. Предложение COLLATE позволяет указать сортировку, используемую в запросе.
Ответ 3
Это обычно вызвано сравнением двух строк несовместимого сопоставления или попыткой выбора данных различной сортировки в комбинированный столбец. Предложение COLLATE
позволяет указать сортировку, используемую в запросе.
Или вы можете ALTER TABLE
соответствовать COLLATE