假设我字段内容是 ids=1,2,3,4,我要查询的字符串是 5,2,3,6,他们只有2,3相同,这么查询出来?
我能想到的只有 ids like '5' or ids like '2' ids like '3' ids like '6' ,有没有更好的办法?
我能想到的只有 ids like '5' or ids like '2' ids like '3' ids like '6' ,有没有更好的办法?
1
mhycy Dec 16, 2014
字符串已知的话用IN
ids IN ("5","2","3","6") |
2
Cynic222 Dec 16, 2014
你这样用"like"等于用"="
|
3
l1905 Dec 16, 2014
ids 字符串前后都加逗号, ids='1,2,3,4' => ids=',1,2,3,4,'
查询语句: ids like '%,5,%' or ids like '%,2,%' or ids like '%,3,%' or ids like '%,6,%' |
5
konakona Dec 16, 2014
比如你有一笔数据
$ids = '1,2,3,7,8,65,32,12,32,55' 你可以执行: select * from tablename where id in ('{$ids}'); //select * from tablename where id in('1,2,3,7,8,65,32,12,32,55'); |
6
s2555 OP 可能我表达还不清楚,是这样的:
表结构 id : 1 value:1,2,3,4 要用值=5,2,3,4 去把这个数据查询出来 难道select * from 表 where value in(5,2,3,4) 这样吗? |
10
holystrike Dec 16, 2014
把 5,2,3,6 拆成4个条件, 取 or 串在一起
select * from table where find_in_set(5, 字段名) OR find_in_set(2, 字段名) OR find_in_set(3, 字段名) OR find_in_set(6, 字段名) |
11
holystrike Dec 16, 2014
但是效率很低
如果可能的话,重新设计表吧 |
12
s2555 OP @holystrike 这样的话用 like 就可以啦,看来只能这样的了。谢谢大家
|
13
holystrike Dec 16, 2014
@s2555 like 不行吧,逗号怎么办?
|