Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用逗号分隔字段上的WHERE子句选择记录_Php - Fatal编程技术网

Php 使用逗号分隔字段上的WHERE子句选择记录

Php 使用逗号分隔字段上的WHERE子句选择记录,php,Php,我有一个带有2个字段的表myTable(4个示例): 我想使用: $zip = 61034; $qry = "Select ID from myTable Where $zip in Zip_Codes"; 可能吗? 什么使它快? 其他更好的解决方案?您不能在这里使用x是x=1或x=2的缩写,它不允许您在逗号分隔的列表中搜索 您可以使用在集合中查找: SELECT ID FROM myTable WHERE FIND_IN_SET(61034, Zip_Codes); 但是,一行中不应该有多

我有一个带有2个字段的表myTable(4个示例):

我想使用:

$zip = 61034;
$qry = "Select ID from myTable Where $zip in Zip_Codes";
可能吗? 什么使它快?
其他更好的解决方案?

您不能在这里使用
<(1,2)中的code>x
x=1或x=2
的缩写,它不允许您在逗号分隔的列表中搜索

您可以使用
在集合中查找

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
将成为主键。您可以将
索引添加到
ID

然后你可以简单地做:

SELECT ID FROM myTable WHERE Zip_Code = 61034

其他更好的解决方案?=-不要在一个字段中存储多个值谢谢。表现很重要。这是一个好的解决方案,任何考虑到速度的更好的解决方案。@user1538401:一个更好的解决方案是在一个字段中不包含多个值。每个邮政编码对应一行。
SELECT ID FROM myTable WHERE Zip_Code = 61034