我有一个 SQL 查询SELECT * FROM table WHERE column LIKE '%pdd%'
。
问题是我需要得到所有结果,不包括以“pdd”开头的结果,我的意思是找到“pdd”不在开头的所有结果。怎么可能做到?
当它不在列的开头时,我确实需要匹配“pdd”。
我假设您的意思是所有与“pdd”匹配的行,除了那些“pdd”在开头的行。
SELECT * FROM table WHERE column LIKE '_%pdd%'.
谓词中的“ _
”通配符LIKE
表示“任何字符之一”,相当于.
正则表达式中的“”。
如果我正确理解您的要求,您需要的是:
SELECT * FROM table WHERE column LIKE '%pdd_%' and column NOT LIKE 'pdd_%'
SELECT * FROM table WHERE column LIKE '%pdd%' AND column NOT LIKE 'pdd%'
您可以根据这些出现在表中的频率来优化查询。
尝试:
SELECT * FROM table WHERE column NOT LIKE 'pdd%'