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

强制MySQL在不使用JOIN / UNION的情况下从WHERE IN子句返回重复项?

钮刚洁
2023-03-14
问题内容

这可能不是很明智,但是如果WHERE IN子句中有重复的条件,我想让MySQL返回完全相同的重复行。这可能吗?

举个例子:

SELECT
   columns
FROM
   table
WHERE
   id IN( 1, 2, 3, 4, 5, 1, 2, 5, 5)

我想让MySQL向我返回ID为5的行3次,ID为1和2的行两次,以及3和4的行。

由于IN参数的长度以及重复计数(一次,两次,三次等)将是任意的,我不想依赖UNIONor JOIN。这样是否可能呢?


问题答案:

我不确定为什么要禁止JOIN,因为JOIN对于SQL来说是相当重要的。这就像禁止使用功能语言进行函数调用一样。

解决此问题的一种好方法是创建一个包含要返回的ID的结果集并与之结合。这是一种实现方法:

SELECT Table1.*
FROM Table1
JOIN (SELECT 1 AS id
      UNION ALL SELECT 2
      UNION ALL SELECT 3
      UNION ALL SELECT 4
      UNION ALL SELECT 5
      UNION ALL SELECT 1
      UNION ALL SELECT 2
      UNION ALL SELECT 5
      UNION ALL SELECT 5) AS T1
ON Table1.id = T1.id

我不确定您是否考虑过这种方法?它没有您似乎担心的问题。

如果您禁止加入,除非使用存储过程,否则您将无法执行此操作,我想说这比加入更糟。



 类似资料:
  • 问题内容: 我正在研究分配液体的应用程序。这是数据库的组织 罐: canister_id {PK} Ingredient_id {FK} 成分: Ingredient_id {PK} 成分名称 喝: Drink_id {PK} 饮料名称 成分: instance_id {PK} Drink_id {FK} Ingredient_id {FK} 数量 每种饮料都有多种成分(保存在Ingredient

  • 问题内容: 我想在MySQL查询中通过Union使用order。我正在根据基于距离的表从不同的标准中获取不同类型的记录,该表基于距离在我的网站上进行搜索。第一个选择查询返回与精确位置搜索有关的数据。第二个选择查询返回与距搜索位置5公里以内的距离有关的数据。第三个选择查询返回与距搜索位置5-15公里之内的距离有关的数据。 然后,我使用union合并所有结果,并在带有分页的页面上显示。在适当的标题下,

  • 本文向大家介绍如何在没有ON条件的情况下使用MySQL JOIN?,包括了如何在没有ON条件的情况下使用MySQL JOIN?的使用技巧和注意事项,需要的朋友参考一下 我们可以不加条件地使用“交叉连接”。交叉联接以笛卡尔积形式给出结果。例如,如果一个表中有3条记录,而另一个表中有2条记录,则第一个记录将与所有第二个表记录匹配。然后,将重复相同的过程以进行第二次记录,依此类推。 交叉连接的例子 创建

  • 我在一个DB中有两个表(和),它们每个都有一个称为的相互列。 我当前使用以下代码仅从中导入一些数据(,): 如果我也想从导入数据(例如,名为和的列),那么我应该向该代码添加什么? 我的目标是拥有这些钥匙: 编辑: 编辑2: 仍然得到一个错误:

  • 但是当我输入一个cast时:它很好。演员阵容是我想要防止的,但这也限制了儿童建设者使用他们的特殊方法。最后一件事是有意义的,因为泛型类型只在运行时知道,但我不知道如何编写它,以便它在编译时工作。 谢谢你!

  • 我想强制子类实现我母亲类的一个实现方法。我看到了一个已实现方法的Java-Force实现,但我无法将我的母类转换为抽象类。 在这个例子中,我想强制myClass实现myMethod。 抱歉我的英语...