php – 在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.

如果您需要进一步扩展,请告诉我.

解决方法:

您应该可以通过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

更多博客文章Sorting MySQL rows using column values.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...