_ stand for any one character in a LIKE expression. That's why you return all values. You need to escape the _ character.
Try this:
WHERE ref LIKE '%\_%';
References:
سؤال
I have a varchar column inside a very simple MySQL Database table that contains 2 different types of product references :
one like : 14521_451_288, and the others like 45742154
to be able to manage them, I'm using the following code :
WHERE ref LIKE '%_%'
But all the results are returned, even the references without underscore. Am I missing something basic here?
المحلول
_ stand for any one character in a LIKE expression. That's why you return all values. You need to escape the _ character.
Try this:
WHERE ref LIKE '%\_%';
References:
نصائح أخرى
Try using
where ref <> instr('_') > 0
because _
stands for any single character in the like
expression while %
stands for any characters in the expression.