2014-02-14 28 views
2

我想要一個MySQL查詢來返回沒有唯一輸入字符串/短語的行。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 

在上表我想消除其中有「集團郵報」只有在他們的行。這意味着該帖子存在多少次,並且其中沒有其他短語或單詞,那麼我們可以將其消除。

所以我想查詢將返回

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

在這些行有的已經郵政集團在其中。但隨着我們在其中有其他短語。

在此先感謝。

+1

對不起,但你的問題很難破譯成書面。你想要排第3行嗎?還是比這更多?請提供一個「之前」的例子來說明你的「之前」的例子,我相信這將有助於澄清你想要做的事情。 – Kzqai

+0

爲什麼你不能嘗試在PHP中通過獲取所有的行值,並檢查它存儲哪些值是需要的 – krishna

+0

我會使用PHP,獲取數組中的值,並爆炸sname - 通過結果數組,並選擇選擇我保留的還是丟掉的 – wribit

回答

5

您需要REPLACE功能來過濾數據。

試試這個:

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

參考
MySQL: REPLACE(str,from_str,to_str) Function

+0

嗨Ravinder,謝謝你的答案。您的查詢解決了我的問題。 – Kiran

0

嘗試尋找所有這些都是字符串ID的子查詢,然後在不使用例如

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

這不會解決OP問題。 PLZ明確地閱讀問題 – krishna

0

從table_name的 選擇斯諾,SNAME 其中長度(更換(SNAME, '集團郵政', '' ))> 0;

0

QUERY

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

SQL FIDDLE DEMO

希望這將幫助你......!

相關問題