2014-12-04 46 views
1

我需要對我的數據庫中的表進行查詢。到目前爲止,我使用FIND_IN_SET,因爲我有這樣的字符串:「twitter,bycicle,car」FIND_IN_SET部分字符串在Mysql中

然後,我可以FIND_IN_SET("twitter", nameOfColumn)

搜索但現在,我需要搜索只是每個 「集」 的一部分,例如:「推特> 10,bycicle,汽車」

它仍然適用於自行車和汽車,但如果我需要搜索Twitter,我找不到它。什麼是正確的方法來做到這一點?

+0

如果你在字符串中有另一個符號(不是逗號),所以'FIND_IN_SET()'不起作用,你可以使用from substring_index'。 – 2014-12-04 10:41:48

+0

你能告訴我一個例子嗎? – Biribu 2014-12-04 10:43:51

+0

這個[link](http://stackoverflow.com/questions/26748845/mysql-split-string/26750049#26750049)是我過去回答的同樣的問題,可能對你有幫助。 – 2014-12-04 10:49:41

回答

1

下面的查詢會給你想要的東西,但是謹慎關於使用它的數據,你必須:

SELECT * 
FROM table1 
WHERE col1 RLIKE 'twitter' 

工作小提琴:http://sqlfiddle.com/#!2/66f538/1

+0

因爲這個,我不想使用LIKE,也許有一些類似的字符串,它會造成混淆。如果我沒有別的辦法,我會用 – Biribu 2014-12-04 11:01:59

+0

@Biribu稍微改進一下,你也可以試試這個:'RLIKE'twitter。* ,?'' – 2014-12-04 11:07:04

+0

我的問題比包含在db中的短。如果我嘗試用「twit」,我得到行...... – Biribu 2014-12-04 11:26:29

0

使用LIKE操作:

SELECT * 
FROM table1 
WHERE nameOfColumn LIKE '%twitter%';