Dec*_*ler 7 mysql duplicates where-in
这可能不是很明智,但如果WHERE IN条款中有重复的条件,我想让MySQL返回完全相同的行.这可能吗?
举个例子:
SELECT
   columns
FROM
   table
WHERE
   id IN( 1, 2, 3, 4, 5, 1, 2, 5, 5)
我喜欢MySQL给我返回id为5的行,id为1和2两次,3和4为一次.
由于IN参数的长度,以及重复计数(一次,两次,三次等),将是任意的,我不想依赖UNION或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
不知道你有没有考虑过这个方法呢?它不存在您似乎担心的任何问题。
如果您禁止联接,则除非您使用存储过程,否则您将无法执行此操作,我认为这比联接更糟糕。
| 归档时间: | 
 | 
| 查看次数: | 2415 次 | 
| 最近记录: |