我的数据库中有一个名为user_data的表。 我想从该表中选择所有数据行,其中用户的advert_status为“有效”。
但是,此表中还有一列称为advert_type。的枚举值为:
Deluxe, Premium and Basic.
我想执行MYSQLI查询,并在advert_status处于活动状态的表中列出所有用户。但是我想按此顺序列出豪华用户,然后是高级用户和基本用户。
所需结果:
Deluxe User 1
Deluxe User 2
Deluxe User 3
Premium User 1
Premium User 2
Basic User 1
Basic User 2
这就是我尝试过的。
$variable = $_GET['r'];
if($variable == '0') {
$query = $conn->query("SELECT * FROM user_data WHERE advert_status = 'Active' ORDER BY advert_type");
这不起作用。请有人能告诉我如何达到我想要的结果吗?预先感谢。
答案 0 :(得分:0)
您可以使用order by case when
来满足您的要求:
SELECT * FROM user_data
WHERE advert_status = 'Active'
ORDER BY
Case when advert_type = "Deluxe" then 1
when advert_type = "Premium" then 2
else 3 end asc