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

MySQL查询返回带有in和find_int_set的重复条目

姬飞昂
2023-03-14
问题内容

我有一个mysql查询,显示用户上次查看的文档。某种历史记录视图,我想在“历史记录”选项卡中显示它,但是我无法使其正常工作。

历史记录保存在另一台服务器上,因此我要获取ID列表,并且必须从文档数据库中获取文档信息。我希望它在历史记录中显示重复的条目(当前不起作用)

我已经尝试了多种方法来使其正常工作,而我所得到的只是获得最近的25个文档,这些文档是在id字段上使用DISTINCT选择的,但是我也想获取重复的文档。

这是我正在使用的查询(已填充示例数据)

SELECT 
    stuff_from_table
FROM 
    a_secret_table
WHERE 
    `id`
IN ( 6176, 6176, 6176, 3091, 3454, 5927, 5929, 5938, 1975, 177, 6123, 5943, 4325, 4326, 4327, 6176, 4327, 1990, 3400, 2650, 2649, 2649, 6176, 4297, 6145 ) 
ORDER BY FIND_IN_SET( id, '6176, 6176, 6176, 3091, 3454, 5927, 5929, 5938, 1975, 177, 6123, 5943, 4325, 4326, 4327, 6176, 4327, 1990, 3400, 2650, 2649, 2649, 6176, 4297, 6145') 
LIMIT 0 , 25

此代码有效,但不会返回任何重复项。它只会像17个结果一样返回,因为它会忽略重复项。

任何人都知道如何使该查询也返回重复项吗?还是我必须在php中手动html" target="_blank">添加缺少的内容?

提前致谢!


问题答案:

IN无需使用子句,您需要对id值进行联接。IE:

  SELECT t.stuff
    FROM YOUR_TABLE t
    JOIN (SELECT 6176 AS tid,
          UNION ALL
          SELECT 6176
          UNION ALL
          SELECT 6176
          UNION ALL
          SELECT 3091) x ON x.tid = t.id
ORDER BY FIND_IN_SET(t.id, '6176, 6176, 6176, 3091') 
   LIMIT 25

您需要将该逗号分隔的列表拆分为一个具有单个列的表-
请参见:http :
//forge.mysql.com/tools/tool.php?id=4



 类似资料:
  • 问题内容: 我想从MySQL查询返回第二条,第三条或第四条记录(基于ID递增的查询) 问题是,我不知道ID,只是它是查询中的第三行。 问题答案: 它说从记录n开始返回一个记录。

  • 我如何告诉Panache查询的结果将是而不是? 谢谢你的回答 编辑:回购代码:

  • 我正在一个项目,有纯PHP作为后端和MySQL作为数据库。目前,我正在使用ajax来发布和接收来自数据库的数据。但我想使用Websockets的接收部分,使其实时。根据我的搜索和发现,人们引用Node.js、Redis PubSub等来实现它。然而,我没有找到一个关于这个主题的好教程。另外,据我所知,当我在后面运行复杂的PHP算法和MySQL查询时,Nods.js和PHP并不能很好地结合在一起。所

  • 本文向大家介绍mysql查询条件not in 和 in的区别及原因说明,包括了mysql查询条件not in 和 in的区别及原因说明的使用技巧和注意事项,需要的朋友参考一下 先写一个SQL 今天在写SQL的时候,发现这个查的结果不全,少了NULL值的情况,not in 的时候竟然把null也排除了 用 in 的时候却没有包含null 感觉是mysql设计的不合理 因为一直认为in 和 not i

  • 问题内容: 我想运行一个简单的查询,以抛出所有其他表()的列中不存在主体列值的行。 我尝试使用: 而是抛出语法错误。Google搜索使我进入了一个论坛,那里的人们说MySQL不支持,因此需要使用一些极其复杂的东西。这是真的?还是我犯了一个可怕的错误? 问题答案: 要使用IN,您必须有一个set,请改用以下语法:

  • 问题内容: 我有一个表,例如,具有ID,State和User_ID的Instrument作为列。 因此,我有这个JPA查询来返回具有匹配的User_ID的所有仪器记录。 它仅返回第一个记录,重复的次数与匹配记录的次数相同。 我在Db中有3条记录,仪器ID为1,2和3 我在hibernate状态下启用了show sql查询,该查询直接在数据库上运行良好,并返回了不同的记录。 hibernate查询: