2015-11-24 2 views
0

То, что я пытаюсь сделать, это найти нулевые символы в текстовом поле.MySQL ищет нуль и получает нечетные результаты

У меня есть SQL заявление, которое звучит так:

SELECT * 
FROM mytable 
WHERE text_field LIKE concat('%', char(0x00 using utf8), '%') 

Интересно, что если text_field не содержит NULL символов, но содержит 0xe2808e, он будет выбран с этим SQL заявления.

Почему?

+0

Можете ли вы представить полный пример? –

+0

Я не знаю, как сделать это более ясным. Оператор SQL точно такой, какой вы его видите. Но он будет возвращать строки с 0xe2808e и которые не содержат 0x00 –

+0

У нас нет вашей таблицы или каких-либо ссылок на строки, которые находятся в ней. Подумайте об этом с точки зрения кого-то, кто пытается ответить - что он собирается попытаться увидеть, что вы видите, чтобы отлаживать? Вот хороший пример, чтобы предоставить полный список примеров: http://stackoverflow.com/help/mcve –

ответ

0

Просьба не обращать внимания - я не смог воссоздать проблему с помощью SQL Fiddle, но могу легко сделать это из моей производственной БД. Очевидно, что это должно быть связано с тем, как структурирована таблица, или что-то еще.