当前位置: 首页 > 面试题库 >

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

陶高峯
2023-03-14
问题内容

我的字符串包含很多与我的数据库相对应的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()后,按降序对列进行排序?,包括了将参数放入MySQL IN()后,按降序对列进行排序?的使用技巧和注意事项,需要的朋友参考一下 为此,将方法与DESC一起使用。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 输出结果 这将产生以下输出- 以下是在MySQL中放置参数后按降序对列进行排序的查询- 输出结果

  • 问题内容: 简而言之:有什么方法可以对GROUP_CONCAT语句中的值进行排序吗? 查询: 我得到这一行: 工艺品»细木工 行政管理»组织 我想要这样: 行政管理»组织 工艺品»细木工 问题答案: 当然,请参见http://dev.mysql.com/doc/refman/...tions.html#function_group- concat :

  • 但我得到一条错误消息,说无法在原语类型int上调用compareToIgnoreCase(int) 我如何修复这段代码,使它能够用整数值对列表进行排序?

  • 问题内容: 我在MySQL表中有一个列,其类型是,而另一列是类型。 我想按以下顺序获取所有表行: 首先排,按 最后一行,排序方式 在中间的所有其他行中,按 可以在1个查询中进行这种排序吗? 问题答案: 使用:

  • 在我的项目中,我将文档存储在MySQL DB中。一个表包含标题号(t_nm)和标题。我想按标题号以正确的顺序列出这张表。由于存储在varchar中的数据,“SELECT*FROM table ORDER by t_nm”不能正常工作。 正确的查询是什么? t_nm(varchar)标题(varchar) 我想用正确的顺序对这些数据进行排序,如下所示

  • 问题内容: 我正在尝试获得一个函数,如果您对它进行排序(列表名),它将对该列表中的所有数字进行从最小到最大的排序。 我不确定我的问题是什么,但是我需要一些帮助,因为输出实际上并不是最小到最大,对于输出的前两个数字来说,它最小到最大。 范例: 如果list中有23、212、44个,而不是我对它进行排序,则输出将是这样。 输出: 212,23,44 它 应该是 23、44、212。 码: 更多代码: