我正在寻找一种从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/

10-11 15:04