我有一个SQL查询SELECT * FROM table WHERE column LIKE '%pdd%'
。
问题是我需要得到所有结果,不包括那些以“pdd”开头的结果,我的意思是找到“pdd”不在开头的所有内容。怎么可能呢?
当它不在列的开头时,我需要匹配“pdd”。
答案 0 :(得分:22)
我假设你的意思是所有匹配“pdd”的行,除了那些“pdd”在开头的行。
SELECT * FROM table WHERE column LIKE '_%pdd%'.
_
谓词中的“LIKE
”通配符表示“正常表达式中的一个”,相当于正则表达式中的“.
”。
答案 1 :(得分:5)
如果我正确理解您的要求,您需要的是:
SELECT * FROM table WHERE column LIKE '%pdd_%' and column NOT LIKE 'pdd_%'
答案 2 :(得分:4)
SELECT * FROM table WHERE column LIKE '%pdd%' AND column NOT LIKE 'pdd%'
您可以根据表格中出现这些事件的频率来优化查询。
答案 3 :(得分:0)
尝试:
SELECT * FROM table WHERE column NOT LIKE 'pdd%'