使用regexp从mysql查询中排除结果

时间:2017-03-23 13:06:20

标签: php mysql regex

我得到了一张包含以下值的表

titles:
Accountant
Auditor
Bookkeper
Forensic Accountant
Tax Accountant

我想选择所有不包含的标题"会计师"在其中,我目前正在尝试

SELECT * FROM careers WHERE title NOT REGEXP '^Accountant'

但它仍然选择"法务会计师"和"税务会计师"

有什么想法吗?

提前致谢!

3 个答案:

答案 0 :(得分:2)

使用not like代替regexp:

SELECT * FROM careers WHERE title NOT LIKE '%Accountant%'

请参阅SQLFiddle

答案 1 :(得分:0)

正则表达式是错误的,你正在使用插入符号(^),这意味着你排除的单词应该以会计开头,而不是删除插入符号,你应该是好的

SELECT * FROM careers WHERE title NOT REGEXP 'Accountant'

要根据选择的作业标题排除用户定义的内容,请执行以下操作

SELECT * FROM careers WHERE title NOT REGEXP (SELECT regexMatch FROM careers WHERE title = "Tax Accountant")

答案 2 :(得分:0)

您可以使用LIKE代替REGEXP:

SELECT * FROM careers WHERE title NOT LIKE '%Accountant%';