假设我字段内容是 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' ,有没有更好的办法?
|
mhycyDec 16, 2014
1
字符串已知的话用IN
ids IN ("5","2","3","6") |
|
Cynic222Dec 16, 2014
2
你这样用"like"等于用"="
|
|
l1905Dec 16, 2014
3
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,%' |
|
konakonaDec 16, 2014
5
比如你有一笔数据
$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
可能我表达还不清楚,是这样的:
表结构 id : 1 value:1,2,3,4 要用值=5,2,3,4 去把这个数据查询出来 难道select * from 表 where value in(5,2,3,4) 这样吗? |
|
holystrikeDec 16, 2014
10
把 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, 字段名) |
|
holystrikeDec 16, 2014
11
但是效率很低
如果可能的话,重新设计表吧 |
|
12
@holystrike 这样的话用 like 就可以啦,看来只能这样的了。谢谢大家
|
|
holystrikeDec 16, 2014
13
@s2555 like 不行吧,逗号怎么办?
|