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

MySQL按特定ID值排序

范稳
2023-03-14
问题内容

是否可以使用预定义的一组列值(ID)按“ order by”在mysql中排序,例如:order by(ID =
1,5,4,3),因此我会在其中得到记录1、5、4、3订购吗?

更新: 关于滥用mysql ;-)我必须解释为什么我需要这个…

我希望记录每5分钟随机更改一次。我有一个cron任务来执行更新表,以在其中放置不同的随机排序顺序。只有一个问题!分页。我将有一位访问者来到我的页面,我给他前20个结果。他将等待6分钟,然后转到第2页,并且由于排序顺序已经更改,因此他将得到错误的结果。

所以我认为,如果他来到我的网站,我会将所有ID都放在一个会话中,而当他进入第2页时,即使排序已经改变,他也会得到正确的记录。

还有其他更好的方法吗?


问题答案:

您可以使用ORDER
BY和FIELD函数。见http://lists.mysql.com/mysql/209784

SELECT * FROM table ORDER BY FIELD(ID,1,5,4,3)

它使用Field()函数,该函数根据文档“返回str1,str2,str3,…列表中str的索引(位置)。如果找不到str,则返回0”。因此,实际上您是根据该函数的返回值(即给定集中字段值的索引)对结果集进行排序。



 类似资料:
  • 问题内容: 在Rails 3.2中,是否有任何便捷的方法通过将具有特定字段的特定值的记录移动到关系的前面来订购ActiveRecord关系?例如,如果有一个attribute ,我想对任何查询返回的关系进行排序,其中记录必须位于该关系的前面。 问题答案: 这样的事情。显然,“名称,ID”将取决于您的型号和要求。

  • 问题内容: 我有一个包含3列的表格: 我想使用以下顺序来排序结果集,但首先要优先考虑那些具有较低优先级的行。结果应如下所示 问题答案: 还有MySQL 函数。 如果要对所有可能的值进行完整排序: 如果您只关心“核心”在前,而其他值则无关紧要: 如果要先按“核心”排序,然后按正常排序顺序按其他字段排序: 不过,这里有一些警告: 首先,我很确定这是仅mysql的功能-问题被标记为mysql,但您永远不

  • 问题内容: 我需要运行一个MySQL查询,该查询的顺序由数组值确定。 我的数组是可变的,但数组中的值对应于我的数据库表中名为“ ID”的字段,因此我希望结果以ID顺序9、1、4返回。 这在MySQL中是否可能,还是可以在之后使用数组对MySQL $ result进行排序?您可以假设返回的唯一值是数组中的值。 问题答案: http://dev.mysql.com/doc/refman/5.5/zh-

  • 问题内容: 我只是想按ID对评论进行排序,但是这样做并不幸运。无法弄清楚该怎么办,因为这使我感到困惑: 你们碰巧知道我如何通过DESC中的ID来订购评论吗?谢谢! 问题答案: 首先,您要进行两次相同的操作。这是不必要的,因为您可以计算行数并从单个查询中获取数据。除此之外,用注释表的唯一ID替换您,即可设置好。替换为以颠倒排序顺序。

  • 问题内容: 我将要有一个固定的项目清单,直到有一个随机化步骤,我才能运行查询直到执行该查询为止。 我想要以下内容: 假设is_launch_set将返回1,3,7,11,但已被随机分配到以下位置: 关于如何实现这一目标的任何想法?我在想也许是一个find_in_set,但不是很确定。 问题答案: 您可以使用以下任一方法来做到这一点: 要么 要么

  • 问题内容: 当我发现时,我有点希望它可以在查询部分的语句中泛化为“ X LAST” 。 事实并非如此。 我正在尝试按两列对表进行排序(简单),但是以特定的顺序(简单)获得输出,其中 一个特定值的一列最后出现 (完成它……很丑)。 假设这些列是并且(不要怪我命名列-我没有给它们命名)。仅采用2个值(“ U”和“ S”),而可以采用约100个值中的任何一个。 的值的一个子集是(在伪正则表达式中),而这