where子句中的IN语句返回具有相同id的数据

时间:2015-05-10 12:09:43

标签: mysql

我的查询:

  $statement = $pdo->prepare("SELECT * FROM posts WHERE subid IN (:key2) AND pricing=:rate2  AND Poscode=:postcode2  ORDER BY Poscode DESC LIMIT 60");

仅用于subid的值数组中的用户键,因此我使用implodeIN在数据库中进行相应的选择。

以下是我从用户输入中获取值的方法:

$a=$data['sub'];//this is for subid

foreach($a as $v=>$k) 
  {

    $key[]=$v;

  }
 $key2=implode(',',$key);


$postcode=$data['postcode'];

$rate=$data['slider1'];

问题是,由于用户密钥在多个subid中,查询应该通过数据库搜索匹配的子代码,poscode和rate。

我想它应该返回,如果找到两个匹配记录,则返回两个记录,一个用于子A,另一个用于子B.

但是现在,它返回两条记录,但是具有相同的数据,这意味着同一个subid?

是什么让这个查询不能返回具有不同ID的数据?

示例数据

  

用户注册了两个帖子。

     

发布1:postA

     

用户名:userA

     

主题:数学

     

率:50

     

邮编:12345

     

帖子2:postB

     

用户名:userA

     

主题:科学

     

率:50

     

邮编:12345

现在我想对此进行搜索:

  

我输入率:50,

     

邮编:12345

     

科目:数学,科学

     

现在我应该看看,两个帖子有两个不同的ID,主题但是   相同的用户,邮政编码和费率。

     

但我所看到的:

     

相同的id,相同的主题,相同的速率(即   正确),相同的邮政编码(这是正确的)。

0 个答案:

没有答案