我使用以下工作mysql查询:
SELECT *
FROM tabs
ORDER BY
featured desc,
CASE WHEN city='$city' THEN 0 ELSE 1 END,
hits DESC
首先按特征返回数据顺序,然后行包含城市值,然后点击。
数据库表'tabs'具有以下顺序
如何通过首先在城市中显示数据,然后从城市获取其他数据,然后按命中排序
例如
如果我住在罗马,我希望数据按此顺序返回。所有标签首先是city ='Rome'和features ='1',然后是其他标签来自罗马(同城市='罗马'),然后点击desc。
我试过但是失败了:
SELECT *
FROM tabs
ORDER BY
featured desc,
CASE WHEN featured='1' and city='$city' THEN 0 ELSE 1 END,
CASE WHEN city='$city' THEN 0 ELSE 1 END,
hits DESC
答案 0 :(得分:2)
请试试这个:
SELECT * FROM tabs
ORDER BY featured desc,
CASE WHEN featured='1' and city='$city' THEN 0
WHEN featured='0' and city='$city' THEN 1
ELSE 2 END,
hits DESC