我的mysql查询是:
$query = $db->query("SELECT * FROM persons WHERE age > 20 OR name LIKE %ali%");
我在以下php源代码中使用了此查询:
while($result = $db->fetch_array($query))
{
echo 'name:' . $result['name'] . ' -->> age: '. $result['age'] . '<br/>';
}
我的结果是这样的:
阿列雷扎->> 21
穆罕默德->> 23
ehsan->> 28
阿丽扎德->> 32
法丁->> 22
aliahmad->> 35
但我要首先显示名称中带有“ ali”的结果,然后显示年龄大于20岁的结果,如下所示:
阿列雷扎->> 21
aliahmad->> 35
阿丽扎德->> 32
穆罕默德->> 23
ehsan->> 28
法丁->> 22
对不起,因为我不会说英语好。我的语言是波斯语。
最佳答案
您可以将条件添加到ORDER BY
子句。
在您的情况下,您将需要以下内容:
ORDER BY
CASE
WHEN name LIKE %ali% THEN 0
ELSE 1
END,
age