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

如何按优先级ID列表对mysql结果排序?

孔征
2023-03-14
问题内容

我有一个庞大的产品数据库,每个星期天,我的脚本都会激活50个新产品。问题是,根据我脚本中的某些规则,我发现我应该优先激活一些产品。(以您的示例为例,它应该始终优先激活其中名称为“
hello kitty”和“ meshuggah”的产品,然后再进行其他操作)

我的数据库表包含有关产品的信息和唯一ID。可以说脚本找到了这些ID中的5个,标题中有hello kitty。

因此,我该如何进行查询,以便优先处理的项目排在最前面,然后是ID desc?

这是我之后的一些伪代码:

SELECT * FROM products order by (id='59', id='47', id='28', id='29', id='20'), id desc limit 50

结果应该先给我id 59、47、28、29和20,然后再按乘以id降序排列的products表中的其他id。

在一个查询中有可能吗?


问题答案:

使用 FIELD

SELECT * 
FROM products 
order by FIELD(id,59,47,28,29,20), id desc 
limit 50
  • 使用MySQL按特定字段值排序


 类似资料:
  • 我有一个,名为,其中包含类型的对象。 您可以在所有车辆上调用该方法。 我要做的是排序,这样车辆被赋予更高的优先级,并被放在队列的前面。 我假设我必须在这里使用一个比较器,但不知道怎么做。

  • 我正在处理一个项目,在这个项目中,我需要对结果进行分页,以便加载DB中具有最高优先级的用户。else块是用户的初始加载,if块应该控制分页,但是我在分页调用时得到的结果是空的(0个文档),同时在初始调用中成功地获取了用户。 我有41个测试文档,限制设置为20个,所以我应该得到2个整页+1个额外的用户在第三个,但我只能得到(用户)文档的第一页。我查看了分页文档,并且我已经为firestore构建了索

  • 问题内容: 我有一个数字列表:(这是现有记录的ID) 我有一个带有列和的mysql表,其中是整数主键。我想从该表中选择的记录,但在一个特定的顺序,例如,,,,,。 是否可以在MyISAM的查询中执行此操作,而无需任何后处理? 最简单的方法是什么? 问题答案: 由于,一个简单就足够了。 但是,如果您要这样订购:,则可以使用function : 如果查询匹配的行多于您列出的行 返回时,行不匹配任何您列

  • 我正在编写一个最小优先级队列和一个最大优先级队列,如下所示: 输入数组的数字将一个接一个地添加到队列中。然而,当数组[12,4,5,3,8,7]是一个样本输入,打印优先队列的输出是: MIN:[3.0, 4.0, 5.0, 12.0, 8.0, 7.0]MAX:[12.0, 8.0, 7.0, 3.0, 4.0, 5.0] 我定义的比较器有什么问题吗?提前感谢你的帮助。

  • 问题内容: 我想知道如何或/和如何工作? 例如,如果我想获取display = 1的所有行 我可以做 如果我想要显示= 1或2的所有行 我可以做 但是,如果我想获取display = 1或2的所有行,并且其中 任何 内容,标签或标题包含 逻辑将如何发挥作用? 是我的猜测。但是我可以通过几种方式阅读。 它的读数是否为: 或作为 等等 问题答案: MySQL文档有一个很好的页面,其中包含有关哪些运算符

  • 问题内容: 我需要返回不包含具有特定ID的文档的结果。Elasticsearch允许我们指定允许使用哪些ID,但是我看不到任何禁止某些ID的方法。在我的情况下,我不想返回用户已经看到的内容,因此每个用户的列表都不同。 问题答案: 您可以通过添加一个过滤器来实现此目的,该过滤器包含一个过滤器,该过滤器带有您不想显示的ID数组,如下所示: