Mysql 按查询顺序进行的少量预处理
我使用以下工作mysql查询:Mysql 按查询顺序进行的少量预处理,mysql,Mysql,我使用以下工作mysql查询: SELECT * FROM tabs ORDER BY featured desc, CASE WHEN city='$city' THEN 0 ELSE 1 END, hits DESC 它首先返回数据顺序,然后返回具有城市值的行,然后返回命中数 数据库表“tabs”的顺序如下 id(int) 城市(文本) 选项卡名(文本) 点击数(整数) 特色(国际) 我怎样才能先从城市中获取特色数据,然后从城市中获取其他数据,然后再按
SELECT *
FROM tabs
ORDER BY
featured desc,
CASE WHEN city='$city' THEN 0 ELSE 1 END,
hits DESC
它首先返回数据顺序,然后返回具有城市值的行,然后返回命中数
数据库表“tabs”的顺序如下
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
请尝试一下这个:
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
我做了一点小改动,效果很好,从选项卡中选择*,按大小写排序,当特征为1,城市为“$city”,然后当特征为0,城市为“$city”,然后选择1,其他2结束,特征为desc,点击desc