将逗号分隔列表与SQL语句中的输入匹配

时间:2014-01-22 17:46:17

标签: mysql sql

我正在优化我的SQL语句以使其更快。

我有一个逗号分隔的列表,其中包含

之类的zipcodes 1111,1112,1115,1112等等

现在在我的查询中,如果iput与这些zipcode中的1个匹配,我想匹配。如果是这样..那么它将返回具有所有这些zipcodes的对象的ID。

但是现在我做的最好的方法是做什么

AND ( loc.loc_zip LIKE  '%".$_REQUEST['zip']."%'

输入的验证将被添加到课程中......但这仅用于测试。但是我测试了这个,看起来有点慢。

这是最好的方法吗?

1 个答案:

答案 0 :(得分:3)

你应该使用'in'

select * from Users where userid in (1,2,3,4,45,6,656)

编辑: 如果ZipCodes是Chars,只有在用''

分隔时才能使用
select * from loc where loc.loc_zip in ('1111','1112','1115','1112')

if。$ _ REQUEST ['zip']。有'那么 - >

select * from loc where loc.loc_zip in (.$_REQUEST['zip'].)

如果ZipCodes是int,则可以使用第一个语句 在中间你必须与你的名单相交''或它不会工作