我正在优化我的SQL语句以使其更快。
我有一个逗号分隔的列表,其中包含
之类的zipcodes 1111,1112,1115,1112等等现在在我的查询中,如果iput与这些zipcode中的1个匹配,我想匹配。如果是这样..那么它将返回具有所有这些zipcodes的对象的ID。
但是现在我做的最好的方法是做什么
AND ( loc.loc_zip LIKE '%".$_REQUEST['zip']."%'
输入的验证将被添加到课程中......但这仅用于测试。但是我测试了这个,看起来有点慢。
这是最好的方法吗?
答案 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,则可以使用第一个语句 在中间你必须与你的名单相交''或它不会工作