让MySQL从LIKE条件的开头忽略“The”?

时间:2011-01-11 16:36:05

标签: sql mysql sql-like

我有一个公司名称列表,并希望显示以某个字符开头的所有名称。例如d

所以查询是

SELECT * FROM company WHERE name LIKE 'd%'

但我也希望那些以“The”开头的公司

SELECT * FROM company WHERE name LIKE 'd%' OR name LIKE 'The d%'

但是,当我们达到't'时,现在是一个棘手的问题,我想要删除所有那些以'The'开头的东西 同时保留其他以“t”开头的东西(并保留“松露之家”之类的内容,其中后面的单词''以't'开头)。

有什么想法吗?想在MySQL中保留逻辑......

3 个答案:

答案 0 :(得分:1)

尝试:

SELECT * FROM company WHERE name regexp '^(The)d'

答案 1 :(得分:1)

SELECT  *
FROM    company
WHERE   (name LIKE '?%' AND NOT name LIKE 'The %')
        OR name LIKE 'The ?%'

答案 2 :(得分:0)

感谢您刚刚选择了

的答案
SELECT  *
FROM    company
WHERE   (name LIKE '?%' AND NOT name LIKE 'The %')
        OR name LIKE 'The ?%'

t我刚刚完成了NOT LIKE所以

的长列表

AND (company_name LIKE 'The%t' OR company_name LIKE 't%') AND company_name NOT LIKE 'The a%' AND company_name NOT LIKE 'The b%'等....