我希望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。但随之而来的是我们还有其他短语。
先谢谢。
答案 0 :(得分:5)
您需要REPLACE
功能来过滤数据。
试试这个:
select * from my_table
where length( replace( replace( sname, 'Group Post', '' ), ', ', '' ) ) > 0
答案 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 强> 的
希望这会对你有帮助......!