mysql“;“在哪里?”;自动区分?
我有点迷路了。我的问题是:mysql“;“在哪里?”;自动区分?,mysql,where,Mysql,Where,我有点迷路了。我的问题是: SELECT id, title FROM products WHERE id IN (4,2,6,4,2); 查询将只产生3条记录 如何获取所有5条记录(在这种情况下,我确实希望看到重复的记录) 非常感谢 更新: 抱歉说得不够准确。谢谢你的评论,事实上我没有正确理解“IN” 这是我的数据: --------------------- | id | title | --------------------- | 2 | product_2 |
SELECT id, title FROM products WHERE id IN (4,2,6,4,2);
查询将只产生3条记录
如何获取所有5条记录(在这种情况下,我确实希望看到重复的记录)
非常感谢
更新:
抱歉说得不够准确。谢谢你的评论,事实上我没有正确理解“IN”
这是我的数据:
---------------------
| id | title |
---------------------
| 2 | product_2 |
---------------------
| 4 | product_4 |
---------------------
| 6 | product_6 |
---------------------
我的目的是接收以下数据,因为我有一个ID列表:
---------------------
| id | title |
---------------------
| 4 | product_4 |
---------------------
| 2 | product_2 |
---------------------
| 6 | product_6 |
---------------------
| 4 | product_4 |
---------------------
| 2 | product_2 |
---------------------
因此,我有一个ID列表,希望收到产品的标题。理想情况下,即使是顺序也应该保留。我认为您对 让我们假设您有一个包含此值的简单表
id
--
1
2
3
4
5
如果你这样做
select id from simplyTable where id in (2,3,4,2,3,4)
你会得到
id
2
3
4
这是因为中的语句中的是一个过滤器,决定是否显示一行。如果放置重复的值,SQL将忽略该值,因为当找到第一个值并检查匹配项时,它将显示该行,而不会继续检查其他值
所以,每个数字都需要输入一次时间,如果重复输入,则不会显示更多次
如果需要重复某些值,可以使用UNION ALL
select id from simplyTable where id in (2,3,4)
union all
select id from simplyTable where id in (2,3,4)
这将返回给您:
id
2
3
4
2
3
4
不要只使用UNION
,因为它将应用一个distinct,并且每个值只返回一次。
UNION
将允许您显示重复的值,因为您正在显示查询的结果i一个结果,我想这正是您所期望的
在这种情况下,您的查询将是:
SELECT id, title FROM products WHERE id IN (4,2,6);
UNION ALL
SELECT id, title FROM products WHERE id IN (4,2)
我想你对
让我们假设您有一个包含此值的简单表
id
--
1
2
3
4
5
如果你这样做
select id from simplyTable where id in (2,3,4,2,3,4)
你会得到
id
2
3
4
这是因为中的语句中的是一个过滤器,决定是否显示一行。如果放置重复的值,SQL将忽略该值,因为当找到第一个值并检查匹配项时,它将显示该行,而不会继续检查其他值
所以,每个数字都需要输入一次时间,如果重复输入,则不会显示更多次
如果需要重复某些值,可以使用UNION ALL
select id from simplyTable where id in (2,3,4)
union all
select id from simplyTable where id in (2,3,4)
这将返回给您:
id
2
3
4
2
3
4
不要只使用UNION
,因为它将应用一个distinct,并且每个值只返回一次。
UNION
将允许您显示重复的值,因为您正在显示查询的结果i一个结果,我想这正是您所期望的
在这种情况下,您的查询将是:
SELECT id, title FROM products WHERE id IN (4,2,6);
UNION ALL
SELECT id, title FROM products WHERE id IN (4,2)
与临时表联接
:
灵感来源于。加入临时表格
:
灵感来自。什么“全部5项记录”<代码>在(42)中的位置
等于在(42,42,42,42,42,42)中的位置
向我们展示一个数据和所需输出的示例。什么是“全部5条记录”WHERE IN(42)
等于WHERE IN(42,42,42,42,42)
向我们展示一个数据示例和所需输出。非常感谢您的回答。因此,如果我有一个包含50个条目的列表,那将是相当乏味的,因为我必须先删除第二个SELECT语句的重复项?视情况而定-向我们展示一个数据和所需输出的示例,我将能够回答您的疑问谢谢,我更新了我的问题。基本上我有一个ID列表,想要标题(甚至是副本)。也许“IN”不是最好的选择,但我不知道如何替换它。这是您的结果,但您真正存储的数据是什么?因为如果这是你存储的数据,你的查询可能会成功对不起,是的,这也是我的数据。但是我的查询没有得到期望的结果。非常感谢您的回答。因此,如果我有一个包含50个条目的列表,那将是相当乏味的,因为我必须先删除第二个SELECT语句的重复项?视情况而定-向我们展示一个数据和所需输出的示例,我将能够回答您的疑问谢谢,我更新了我的问题。基本上我有一个ID列表,想要标题(甚至是副本)。也许“IN”不是最好的选择,但我不知道如何替换它。这是您的结果,但您真正存储的数据是什么?因为如果这是你存储的数据,你的查询可能会成功对不起,是的,这也是我的数据。但是我的查询没有得到所需的输出。