小编典典

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

mysql

我的字符串包含很多与我的数据库相对应的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。

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


阅读 516

收藏
2020-05-17

共1个答案

小编典典

您应该可以通过如下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行进行排序

2020-05-17