我的数据库中有一个名为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");
这不能完成这项工作。请有人告诉我如何达到我想要的结果吗?提前谢谢。
您可以使用
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