php - 在 MySQL 中显示多行

标签 php mysql arrays mysqli

我有一张这样的 table

id   |   name 
------------------
1    |   SAM1
2    |   SAM2
1    |   SAM1
3    |   SAM3
7    |   SAM7
6    |   SAM6

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

SELECT name,id FROM tblnameWHERE id IN (1,2,7,6,1)

得到如下结果

id   |   name 
------------------
1    |   SAM1
2    |   SAM2
7    |   SAM7
6    |   SAM6

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

id   |   name 
------------------
1    |   SAM1
2    |   SAM2
7    |   SAM7
6    |   SAM6
1    |   SAM1

不使用循环查询(如下所示)还有其他方法吗?

$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 

}

请帮忙

最佳答案

查询

SELECT name,id FROM tblname WHERE id IN (1,2,7,6);

应该显示重复的行;例如如果表中真的有两个具有相同 ID 的不同行,则查询将显示它们(因为没有 DISTINCT 关键字)。

相反,如果您想从包含单行的表开始创建重复行,则必须将您的表与重复 1 的表连接起来(在您的情况下);另一种方法是像这样使用联合:

SELECT  name, id FROM tblname WHERE id IN (1,2,7,6)
  UNION ALL
SELECT name, id FROM tblname WHERE id = 1;

编辑

由于您的 id 是主键,它将是唯一的,因此您遇到的“问题”。如果要允许插入重复行,请删除主键。如果您需要,请考虑上面建议的可能解决方案。

关于php - 在 MySQL 中显示多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9971098/

相关文章:

MYSQL 查询的不同结果

java - 根据数组列表的值对数组的内容进行排序

php - UNION SELECT 与其他两个相关表的连接

php - 选择没有 JS 的提交按钮

php - 带有键值对的array_push()

php - GROUP BY 功能不起作用

php - SQL 匹配所有关键字的开头

c - 重新分配 char 数组中的字符

ruby - 为什么我的散列具有映射到多个值的相同键?

javascript - 比较 MySQL 条目中的 'closest' 匹配