MySQL对IN()中的参数进行排序

我的字符串包含很多与我的数据库相对应的ID。喜欢:

1,2,3,4,5

然后,我执行mySQL查询以选择所有这些行:

SELECT * FROM `table` WHERE `id` IN (".$myIDs.")

我希望mySQL按照我在IN()中选择的顺序返回行。

所以如果我有

2,1,3,4,5

在PHP中进行提取时,第一行将是#2。没有任何ORDER BY,看起来它首先返回最低的ID。

让我知道您是否需要进一步的扩展。

回答:

您应该可以通过如下FIELD()功能执行此操作:

SELECT * FROM `table` WHERE `id` IN (2,1,3,4,5) ORDER BY FIELD(`id`, 2,1,3,4,5) DESC

那是:

SELECT

*

FROM

`table`

WHERE

`id` IN (".$myIDs.")

ORDER BY

FIELD(`id`, ".$myIDs.") DESC

这篇博客文章的更多内容: 使用列值对MySQL行进行排序

以上是 MySQL对IN()中的参数进行排序 的全部内容, 来源链接: utcz.com/qa/407149.html

回到顶部