我现在有一个保存区域信息的表。区域如下:
全州-2个结果
北-4结果
南-4结果
东部-3结果
West-7结果
目前,当用户选择Statewide时,他们会从Statewide得到结果。但从逻辑上讲,如果所有其他区域的结果也都显示出来,就更有意义了,因为它们是国家的一部分。目前,它只显示2个结果,但应该显示20个结果
此外,如果有人选择东部,他们应该看到从地区+全州的名称结果。所以如果有人选择东部,结果应该是东部+全州。目前显示的是3个结果,而不是5个结果
有人能帮我一下吗?非常感谢你的帮助。
我试过,或者,XOR和UNION语句,但它们似乎都不起作用。

if (!empty($region_name)) {

            if($region_name !== 'Statewide'){
                $venueArray[] = " AND (REGION = '$region_name' ) XOR ( REGION = '$statewide')";
            }else if($region_name == 'Statewide'){
                $venueArray[] = " AND (REGION = '$region_name' ) XOR ( REGION != '$statewide')";
            } else{
                $venueArray[] = " AND (REGION = '$region_name')";
            }

        }

第1-10行/search.php

最佳答案

当区域名为Statewide时,您需要所有结果(因此不需要条件),否则您需要区域和Statewide结果,因此您的if可以简化为:

if (!empty($region_name) && $region_name !== 'Statewide'){
    $venueArray[] = " AND (REGION = '$region_name' OR REGION = '$statewide')";
}

请注意括号中的变化,以确保此条件在运算符优先级方面与其他条件很好地配合。

关于php - 如何使用WHERE子句中同一列的多个值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54211248/

10-12 15:42