3

我使用以下工作 mysql 查询:

SELECT * 
FROM tabs  
ORDER BY 
    featured desc, 
    CASE WHEN  city='$city' THEN 0 ELSE 1 END, 
    hits DESC

它首先按特征返回数据顺序,然后行具有城市值,然后是命中。

数据库表“选项卡”具有以下顺序

  1. 编号(整数)
  2. 城市(文字)
  3. 标签名(文本)
  4. 命中(整数)
  5. 精选(int)

我如何首先按城市中的特色获取数据顺序,然后从城市获取其他数据,然后按点击量排序

例如

如果我住在罗马并且我希望数据按此顺序返回。所有标签首先出现 city='Rome' 和 features='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
4

1 回答 1

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
于 2013-09-04T16:13:18.607 回答