我正在寻找一种从mysql数据库的结果集中排除带有'_'值的值的方法。
为什么以下sql语句不返回任何结果?
select questionKey
from labels
where set_id = 674
and questionKey like 'Class%'
and questionKey not like '%_%' ;
这是我尝试在哪里的第一个sql
select questionKey
from labels
where set_id = 674
and questionKey like 'Class%'
and locate('_',questionKey) = 0 ;
退货
questionKey
ClassA
ClassB
ClassC
ClassD
ClassE
ClassF
ClassG
ClassNPS
ClassDis
这是我想要的结果。在我看来,两个SQL语句在逻辑上都是等效的,尽管它们在逻辑上并不相同。
最佳答案
正如塔德曼和PM77所指出的那样,这是一个特殊的角色。如果要使用第一个查询,请尝试像这样对它进行转义(注意反斜杠):
select questionKey
from labels
where set_id = 674
and questionKey like 'Class%'
and questionKey not like '%\_%' ;
关于mysql - 选择MySQL没有'_'的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36295361/