从整个表中检查与sql中的where子句匹配的值

时间:2018-06-21 20:02:51

标签: mysql sql

我正在尝试从有多列的表中获取数据,但是我只想获取同时用单一名称表示两个代码的那些行。喜欢

  customer_id     code   
  ct001           abc
  ct002           xyz
  ct001           xyz
  ct003           abc 

这里没有唯一或主键的值,现在查询应该只返回 ct001 ,因为它同时存在两个代码,即 abc xyz

现在如何实现此目的,我正在尝试使用此查询。

$sql = "SELECT *  FROM code_table WHERE code IN ('abc' ,'xyz') 
        AND customer_id= '" .$row['customer_id'] . "'";

我正在从另一个表获取客户ID,并在循环中使用此查询

1 个答案:

答案 0 :(得分:2)

我想你想要

SELECT code 
FROM code_table
WHERE code IN ('abc', 'xyz') 
GROUP BY code
HAVING COUNT(*) = 2;

当您可以让数据库为您完成工作时,您不应在应用程序代码中循环。