在 MySQL“IN”子句中按值顺序对结果进行排序
在 MySQL 中,使用“IN”从大表中选择记录子句通常会导致无序的结果。对于结果顺序至关重要的场景,需要一种解决方法来实现所需的顺序。
低效方法:临时表
最初,建议是创建使用“IN”子句中的值创建临时表并执行联接操作。但是,这种方法对于大型数据集可能效率较低。
高效解决方案:FIELD() 函数
FIELD() 函数提供了一种高效的方法,而不是使用连接根据“IN”子句中的值对结果进行排序的替代方法。 FIELD() 函数采用两个参数:
通过在 ORDER BY 子句中使用 FIELD() 函数,可以根据“IN”子句中的值的顺序对结果进行排序:
<code class="sql">SELECT * FROM your_table WHERE id IN (5,2,6,8,12,1) ORDER BY FIELD(id,5,2,6,8,12,1);</code>
FIELD() 函数文档
有关 FIELD() 函数的更多信息,请参阅 MySQL 文档:
[MySQL FIELD() 函数参考](https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_field)
以上是如何使用 IN 子句按值顺序对 MySQL 查询结果进行排序的详细内容。更多信息请关注PHP中文网其他相关文章!