维护 MySQL“IN”查询中的顺序
当使用“IN”运算符过滤 MySQL 查询中的结果时,结果不一定与“IN”子句中指定的值的顺序匹配。这是因为 MySQL 默认不保证结果的顺序。
要维持“IN”查询中结果的顺序,可以使用以下方法:
使用FIELD函数
FIELD函数可用于指定所需的结果顺序。它采用逗号分隔的值列表作为其第二个参数,并返回匹配值在列表中的位置。例如,以下查询将按照“IN”子句中指定的顺序返回结果:
SELECT * FROM foo f WHERE f.id IN (2, 3, 1) ORDER BY FIELD(f.id, 2, 3, 1);
FIELD 的参数列表可以是可变长度,允许您根据需要指定任意数量的值。
注意:
ORDER BY FIELD 方法适用于简单查询,其中“IN”子句中的值为提前知道。但是,如果值是动态的或从其他数据源检索的,则此方法可能不合适。
以上是如何保证 MySQL 的'IN”查询结果顺序?的详细内容。更多信息请关注PHP中文网其他相关文章!