首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中显示多行

在MySQL中显示多行
EN

Stack Overflow用户
提问于 2012-04-02 13:00:32
回答 5查看 968关注 0票数 1

我有一张这样的桌子

代码语言:javascript
复制
id   |   name 
------------------
1    |   SAM1
2    |   SAM2
1    |   SAM1
3    |   SAM3
7    |   SAM7
6    |   SAM6

我需要使用这个查询来显示结果

代码语言:javascript
复制
SELECT name,id FROM tblnameWHERE id IN (1,2,7,6,1)

并得到以下结果

代码语言:javascript
复制
id   |   name 
------------------
1    |   SAM1
2    |   SAM2
7    |   SAM7
6    |   SAM6

我的问题是这个跳过了最后一个id,即1。我需要这样的东西

代码语言:javascript
复制
id   |   name 
------------------
1    |   SAM1
2    |   SAM2
7    |   SAM7
6    |   SAM6
1    |   SAM1

如果不使用循环查询(如下所示),还有没有其他方法可以做到这一点?

代码语言:javascript
复制
$ids=array(1,2,7,6,1);
$i=0;
foreach($ids as $id){

$sql=mysql_query("SELECT * FROM tblname WHERE id=$id");
// Store value to array 

}

请帮帮忙

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-02 13:09:16

查询

代码语言:javascript
复制
SELECT name,id FROM tblname WHERE id IN (1,2,7,6);

应该显示重复的行;例如,如果表中确实有两个不同的行具有完全相同的id,那么查询将显示它们(因为没有distinct关键字)。

相反,如果您希望从包含单行的表开始创建重复行,则必须将表与重复为1的表连接起来(在本例中);另一种方法可以使用以下联合:

代码语言:javascript
复制
SELECT  name, id FROM tblname WHERE id IN (1,2,7,6)
  UNION ALL
SELECT name, id FROM tblname WHERE id = 1;

编辑

因为你的id是一个主键,所以它是唯一的,所以你遇到了“问题”。如果希望在插入时允许重复行,请删除主键。如果您需要它,请考虑上面建议的可能的解决方案。

票数 2
EN

Stack Overflow用户

发布于 2012-04-02 13:07:28

您必须使id唯一,不同行具有相同的id,因此不能同时获取这两行。

票数 1
EN

Stack Overflow用户

发布于 2012-04-02 13:31:55

尝试联合所有

代码语言:javascript
复制
(SELECT name,id FROM tblname WHERE id IN (1,2,7,6)) UNION ALL (SELECT name,id FROM tblname WHERE id IN (1))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9971098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档