我有一个带有2个字段的表myTable(4个示例):
ID Zip_Codes
=== =========
1 60148,60123,61034,61234
2 60122,61034
我想用:
$zip = 61034;
$qry = "Select ID from myTable Where $zip in Zip_Codes";
这可能吗? 是什么让它快? 其他更好的解决方案?
答案 0 :(得分:2)
您无法在此处使用IN
。 x IN (1,2)
是x = 1 OR x = 2
的简写,它不允许您在逗号分隔列表中搜索。
您可以使用FIND_IN_SET
:
SELECT ID FROM myTable WHERE FIND_IN_SET(61034, Zip_Codes);
但是,您不应该在一行中有多个值。每个邮政编码应该有一行。
RowID ID Zip_Code
===== === =========
1 1 60148
2 1 60123
3 1 61034
4 1 61234
5 2 60122
6 2 61034
(RowID
是主键。您可以将INDEX
添加到ID
。)
然后你就可以做到:
SELECT ID FROM myTable WHERE Zip_Code = 61034