我有一个名为评论
的MySQL表review_id, product_id, language_id, rating, review, author
对于10种不同的语言,language_id 的范围为 1到10 。
假设我确定我的访问者正在使用ID为4的语言浏览网站
有没有办法编写单个查询: 1.首先用当前语言抓取该产品的评论 2.接下来,使用按语言排序的其他语言抓取该产品的评论
因此,以下2个查询的工作基本上是一个接一个地运行:
SELECT * FROM reviews WHERE product_id = 723 AND language_id = 4;
SELECT * FROM reviews WHERE product_id = 723 AND language_id != 4 ORDER BY language_id ASC;
答案 0 :(得分:2)
SELECT * FROM reviews WHERE product_id = 723 AND language_id = 4
UNION
SELECT * FROM reviews WHERE product_id = 723 AND language_id != 4 ORDER BY language_id ASC;
<强>解释强>
您的要求非常简单。
你有两个SQL,你想要一个组合的outout。
由于表格也是相同的字段,请使用MySQL UNION。
答案 1 :(得分:2)
SELECT * FROM reviews WHERE product_id = 723
order by case when language_id = 4 then 0 else 1 end, language_id;