MySQL:获取重复查询字段的重复数据

时间:2015-01-15 06:39:45

标签: php mysql

我是mySQL和PHP的新手,所以请耐心等待。

如何使其成为如果我的查询具有重复字段,则检索到的数据将包含重复查询字段的重复数据。

一个例子就是:

查询id = 34,54,21,21,50(已按照我希望他们进入的顺序)

我希望数据库返回

id = 34的user_icon,id = 54的user_icon,id = 21的user_icon,id = 21的user_icon,id = 50的user_icon。

并不只是为重复的ID 21返回了一个数据。

以下是我目前使用的代码:

 $thumb = "SELECT thumbnail from users WHERE id IN (".$idsearch.") ORDER BY FIELD(id , ".$idsearch.")";
   $search = $con->prepare($thumb);
   $search -> execute();

   $pics = $search->fetchAll();
   foreach($pics as $pic) {
     $thumbnail[] = $pic['thumbnail'];
  }

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

SQL查询返回表中与where条件匹配的每一行。如果要过滤掉重复项,则需要您明确地执行此操作(例如,使用distinct关键字)。 由于您的查询没有任何此类特殊处理,如果它们存在,它将返回重复项,因此您的代码很好。

答案 1 :(得分:0)

我现在无法想到MYSQL查询。但是如果不考虑性能,你可以使用像

这样的东西
$thumb = "SELECT thumbnail from users WHERE id = ?";
$search = $con->prepare($thumb);

foreach($idsearch as $id) {
   $search->execute(array($id));
   $pics = $search->fetch(PDO::FETCH_ASSOC);
   $search->closeCursor();
   $thumbnail[] = $pic['thumbnail'];
}

PDO将编译SQL查询,执行速度将比普通的SQL查询快。