成功语句
select * from ff_vod where FIND_IN_SET("黄金兄弟", vod_name)
select * from ff_vod where FIND_IN_SET("黄金兄弟", vod_name) ORDER BY vod_id LIMIT 2
方法一
很简单可以用%来实现
比如
1
|
SELECT * FROM users WHERE emails like "%b@email.com%" ;
|
但是这样子的话就会把bb@email.com也查出来了就不符合需求了
方法二
利用mysql 字符串函数 find_in_set();
1
|
SELECT * FROM users WHERE find_in_set( 'aa@email.com' , emails);
|
这样子就可以找到email字段里包含有aa@emial.com的所有用户了
1.正确的方式:
判断字段field_A中是否包含23:
select * from table_test where FIND_IN_SET("23", field_A) ;
1
2.错误的方式:
select * form table_test where field_A like "%23%"
1
3.案例分析:
field_A字段:
[5,123,223]
[230,232,233]
[5,23,1]
1
2
3
4
若想查询field_A字段中含有字符串23的记录,而不包含123,231等记录的话,只能通过Mysql函数FIND_IN_SET("str","field")来查询,否则会有干扰数据。
通过like "%23%"会查询到3条记录。
通过like "23%"会查询到后两条记录。
通过like "%23"第一条和第三条记录,所以like模糊查询的并不能满足需求。