2014-12-04 41 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%';