我是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'];
}
感谢您的帮助!
答案 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查询快。