Кажется, проблема с кодировкой.
Попробуйте выполнить этот запрос:
SELECT HEX(CAST('product name here in utf-8 encoding, can be various languages' AS BINARY))
как в ezSQL
, так и в браузере запросов и сравните результаты.
Это даст вам двоичный поток, который MySQL
действительно получает от вашего клиента и использует для сравнения.
Если в свойствах ezSQL
установлена неправильная кодировка соединения, строка может быть искажена (например, вопросительные знаки вместо UTF
символов).
В этом случае сравнение, конечно, не удастся.
Обновление:
Попробуйте принудительно сопоставить регистр без учета регистра:
SELECT *
FROM table
WHERE field LIKE 'product name here in utf-8 encoding, can be various languages' COLLATE UTF8_GENERAL_CI
Кроме того, не могли бы вы опубликовать двоичный дамп как вашей строки, так и данных, содержащихся в поле?
SELECT p_pid, p_name, p_cat,
HEX(CAST(p_name AS BINARY)),
HEX(CAST('product name here in utf-8 encoding, can be various languages' AS BINARY))
FROM products
WHERE p_pid = @pid_of_product_that_should_match_but_it_doesnt