【发布时间】:2021-06-27 17:19:48
【问题描述】:
这是我尝试过的。当应该有很多时,我得到零结果。任何帮助将不胜感激!
这是订购代码:
ORDER BY category ASC,
CASE WHEN Business_Zip IN 'Certified_Zips' THEN Search_Order WHEN Business_Zip NOT IN
'Certified_Zips' THEN Search_Order_2 END ASC,
Referrals DESC,Business_Name,Login,id ASC";
这是整个查询:
"SELECT * FROM DATA" WHERE Zip_Radius LIKE '%$zipradius%' AND category NOT
LIKE '$category' AND category NOT LIKE '$category2' AND category NOT LIKE
'$category3'
AND category2 NOT LIKE '$category' AND category2 NOT LIKE ('$category2' AND
category2 != '') AND category2 NOT LIKE ('$category3' AND category3 != '')
AND category3 NOT LIKE '$category' AND category3 NOT LIKE ('$category2' AND
category2 != '') AND category3 NOT LIKE ('$category3' AND category3 != '')
ORDER BY category ASC,
CASE WHEN Business_Zip IN 'Cerified_Zips' THEN Search_Order ELSE Business_Zip
NOT IN 'Certified_Zips'
THEN Search_Order_2 END ASC,
Referrals DESC,Business_Name,Login,id ASC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "stuff....";
}
} else {
echo "no results";
}}
$conn->close();
【问题讨论】:
-
当应该有很多结果时我得到零结果。 ORDER BY 不能影响返回的行数。
-
您可能遇到了语法错误。查看如何在 PHP 中处理 SQL 错误。这:
Business_Zip IN 'Cerified_Zips'无效。在IN之后应该有一组值,例如Business_Zip IN (1234, 5678),而不是像'Cerified_Zips'这样的字符串。CASE表达式的其余部分也无效。