次の作業用mysqlクエリを使用します。
SELECT *
FROM tabs
ORDER BY
featured desc,
CASE WHEN city='$city' THEN 0 ELSE 1 END,
hits DESC
最初に特徴別にデータの順序を返し、次に行に都市の値があり、次にヒットがあります。
データベーステーブル「タブ」には次の順序があります
- id(整数)
- 都市(テキスト)
- タブ名(テキスト)
- ヒット数(int)
- 特集 (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