Php MySQL或正在查询中

Php MySQL或正在查询中,php,mysql,Php,Mysql,我可以在mysql语句中使用“或”来对照多个选项检查字段值吗 //THE QUESTION IF HAVE IS HOW DO I DO SOMETHING LIKE BELOW MAINLY THE "1 OR 2 OR 3 OR 4" PART. $sql = "SELECT email FROM USER_INFO WHERE storeID = '$storeNUM' AND region = '1 OR 2 OR 3 OR 4'"; $results2 = $

我可以在mysql语句中使用“或”来对照多个选项检查字段值吗

    //THE QUESTION IF HAVE IS HOW DO I DO SOMETHING LIKE BELOW  MAINLY THE "1 OR 2 OR 3 OR 4" PART.

    $sql = "SELECT email FROM USER_INFO WHERE storeID = '$storeNUM' AND region = '1 OR 2 OR 3 OR 4'";
   $results2 = $db->query($sql);
您可以使用以下选项:

$sql = "SELECT email FROM USER_INFO WHERE storeID = '$storeNUM' AND (region = 1 OR region = 2 OR region = 3 OR region = 4)";

如果region是一个字符串,您可以将其简化为字符串,但它确实没有理由这样做:

$sql = "SELECT email FROM USER_INFO WHERE storeID = '$storeNUM' AND region REGEXP '1|2|3|4'";
$results2 = $db->query($sql);

您可以在中使用
作为多个或多个测试的速记

SELECT email
    FROM USER_INFO
    WHERE storeID = '$storeNUM'
        AND region IN (1,2,3,4);

以下是您进行此类匹配的方式:

... AND region IN (1,2,2,4)
您可以使用阵列和它来获得一个好的解决方案:

$regions = array( 1, 2, 3, 4);
$sql = 'SELECT email FROM USER_INFO WHERE storeID = "$storeNUM" AND ( region = ' . implode( ' OR region = ', $regions) . ' )';
echo $sql;
输出:

SELECT email FROM USER_INFO WHERE storeID = "$storeNUM" AND ( region = 1 OR region = 2 OR region = 3 OR region = 4 )

不可能!当
中的
为您服务时,为什么要使用REGEXP?您也可以在
中的
中为字符串选择-
在('3','4','4')中选择'3'在MySQL中工作。@flexxy:您也可以执行
。。。(字段1、字段2、字段3,…)中的某些值也存在。
。这是一个很好的灵活的操作员。我也想听听。OP问他是否可以使用
,这是一种使用它的方式。我没有否决投票,你的答案是在发布关于使用IN的帖子之前我将如何做。谢谢你提供的信息+1谢谢+1并在6分钟内登记。我没有投反对票,但我想说这本身并没有错。有更好的方法来做,而不是写出多个“或”比较。