我的字符串包含很多与我的数据库相对应的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()功能执行此操作:
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行进行排序 。