-1

当您通过 MySQLi 语句检索数据时,如下所示:

$sqls = "SELECT * FROM course WHERE course='$product_id_array' OR course='Both' ORDER BY ...";
$sqlsresults = mysqli_query($db_conx,$sqls);
while($row = mysqli_fetch_assoc($sqlsresults)) {
    $selectedContent = $row["content"];
    $selectedTitle = $row["title"];
}

有没有办法先输出匹配'both'?这会像重新安排WHERE语句部分的顺序一样简单吗?

4

1 回答 1

2

您的ORDER BY明确排序仅按id. WHERE在您的查询部分没有办法解决这个问题。要更改结果的排序方式,请使用ORDER BY.

SELECT *
FROM course
WHERE course=...
OR course='Both'
ORDER BY CASE course WHEN 'Both' THEN 0 ELSE 1 END ASC, id DESC

无关说明:如果$product_id_array包含不受信任的用户输入,用户可以将类似的东西'; DELETE FROM course; --放在那里。阅读参数化查询以了解如何防止这种情况。

于 2013-08-11T18:22:44.187 回答