Ясно, что «да» не то, что вы думаете. Я бы начал с попыток получить совпадение:
WHERE question_id = 1 AND answer LIKE '%Yes%'
Если это не сработает, тогда:
WHERE question_id = 1 AND answer LIKE '%Y%e%s%'
Как только вы получили совпадение, вы можете попытаться выяснить, что не так. Вот три общие проблемы:
- Трейлинг / Лидеры
- похожие символы (например, ноль и заглавная O)
- Скрытые символы (обычно из набора не-ASCII символов)
У MySQL, увы, нет regexp_replace()
. Если это всего лишь один символ, вы можете найти его. Например, если оно находится в начале строки:
select @char := left(answer, 1)
from question_answer
where answer regexp '^[^a-zA-Z0-9 ]')
limit 1;
Это установит @char
на значение символа. Вы можете использовать это в update
для удаления таких символов из строки.