//$keytype以数组的形式保存你要的关键字$keytype = implode(",",$keytype);$sql="select * from table where keytype in $keytype";
检查一下,如果keytype只有一个的情况下,用where keytype = xxx 如果多于一个的情况下,用where keytype in (xxx)
$keytype = join(",",$keytype);$sql = "select * from A where FIND_IN_SET(keytype,$keytype )>0"
一个$keytypeselect * from table where keytype = $keytype二个的话select * from table where keytype = $keytype[0] or keytype = $keytype[1]三个的话select * from table where keytype = $keytype[0] or keytype = $keytype[1] or keytype = $keytype[2][code=PHP]
用LOCATE函数也可以。 $sql = "select * from A where LOCATE(keytype,$keytype )>0"
keytype只存储三个值分别1,2,4但一条记录只能存一个数值
比如
aid keytype name
1 2 中国1
2 1 中国2
3 2 中国3
4 1 中国4
5 4 中国5
搜索条件有这几种可能组合:
1,2
1,4
2,4
1,2,4
也有可能是单选比如:
1
2
4
这样的sql语句如何去实现呢
如果多于一个的情况下,用where keytype in (xxx)
用LOCATE函数也可以。
$sql = "select * from A where LOCATE(keytype,$keytype )>0"
IN的效率要比OR高些. 字段加了索引以后,
IN的效率要比OR高些加索引比不加索引速度简单不能比.所以建议加索引.