Значение - это строка, содержащая буквенно-цифровые c символы, а также специальные символы . И я пытаюсь отобразить значения, которые содержат '%' .
Вы можете просто использовать строковые функции:
select val from mytable where locate(val, '%')
Если вы хотите сделать это с помощью like, вам понадобится опция escape:
like
escape
select val from mytable where val like '%|%%' escape '|';
Другой способ (хотя, возможно, не быстрее):
WHERE val REGEXP('%')