php - 以特定顺序检索数据的单个 SQL 查询(不是 ASC/DESC)

标签 php mysql sql

我有一个名为 reviews

的 MySQL 表
review_id, product_id, language_id, rating, review, author

language_id 范围从 1 到 10,代表 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;

最佳答案

SELECT * FROM reviews WHERE product_id = 723
order by case when language_id = 4 then 0 else 1 end, language_id;

关于php - 以特定顺序检索数据的单个 SQL 查询(不是 ASC/DESC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27291360/

相关文章:

php - 使用连接表更新

sql - 将单个 sql server 行存储在变量中,然后使用列值构建查询

PHP 所有函数都应该先检查它们的参数类型吗?

php - 有没有一种算法可以输出两组元素的所有可能组合?

php - 忽略将数据导出到 php mysql 中的 csv 文件的空列

php - 使用一两个 mysql 的 php 脚本

php - 具有不同 JSON 响应的 Ajax 调用

php - 如何将 Rgraph 与 PHP 和 MySQL 集成?

php - 用PHP学习OO编码,static != 表达式,但是PHP手册上说凡是有值的都是表达式,一头雾水

java - jOOQ - 方法调用