MySQL获取行,这些行不包含特定的字符串/单词

时间:2014-02-14 11:32:53

标签: php mysql sql

我希望MySQL查询返回没有唯一输入字符串/短语的行。

示例:我的表格的列名如

Sno  | sname
---------------
1    | AAA
2    | SSS
3    | Group Post
4    | Group Post, Test Run
5    | Group Post, Group Post
6    | Group Post, Group Post, My test Run

在上表中,我想删除仅包含“Group Post”的行。这意味着Group Post中存在多少次Group Post,并且其中没有其他短语或单词,那么我们就可以消除它。

所以我想要一个将返回的查询

Sno  | sname
---------------
1    | AAA
2    | SSS
4    | Group Post, Test Run
6    | Group Post, Group Post, My test Run

在这些行中,其中一些行中有Group Post。但随之而来的是我们还有其他短语。

先谢谢。

4 个答案:

答案 0 :(得分:5)

您需要REPLACE功能来过滤数据。

试试这个:

select * from my_table
 where length( replace( replace( sname, 'Group Post', '' ), ', ', '' ) ) > 0

请参阅
MySQL: REPLACE(str,from_str,to_str) Function

答案 1 :(得分:0)

尝试子查询以查找具有该字符串的所有ID,然后不使用例如

SELECT * FORM {table_name} where id not in (select * from {table_name} where sname = "YOUR_STRING");

答案 2 :(得分:0)

选择Sno,sname 来自table_name 其中length(替换(sname,'Group Post',''))> 0;

答案 3 :(得分:0)

QUERY

SELECT *
FROM test
WHERE sname NOT LIKE '%Group Post'

SQL FIDDLE DEMO

希望这会对你有帮助......!