Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按查询顺序进行的少量预处理_Mysql - Fatal编程技术网

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) 城市(文本) 选项卡名(文本) 点击数(整数) 特色(国际) 我怎样才能先从城市中获取特色数据,然后从城市中获取其他数据,然后再按

我使用以下工作mysql查询:

SELECT * 
FROM tabs  
ORDER BY 
    featured desc, 
    CASE WHEN  city='$city' THEN 0 ELSE 1 END, 
    hits DESC
它首先返回数据顺序,然后返回具有城市值的行,然后返回命中数

数据库表“tabs”的顺序如下

  • id(int)
  • 城市(文本)
  • 选项卡名(文本)
  • 点击数(整数)
  • 特色(国际)
  • 我怎样才能先从城市中获取特色数据,然后从城市中获取其他数据,然后再按点击次数获取数据顺序

    比如说

    如果我住在罗马,我希望数据按这个顺序返回。所有标签首先显示city='Rome'和featured='1',然后是来自罗马的其他标签(同一个city='Rome'),然后点击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
    

    请尝试一下这个:

    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