MySQL查询可以执行类似流控制的操作吗?

时间:2015-10-28 14:49:23

标签: mysql

我有一个包含重复条目的表格:

|User|Product|
--------------
|John| apple |
|John| orange|
|Tim | apple |
|Tom | grape |
|Kath| orange|

我想选择有橙色的用户,但我想要删除多次输入的用户。我通常认为在代码中,所以我的引用是一个if语句,但是在查询中有一种简单的方法可以做到这一点。这是伪代码中的逻辑:

foreach row
  if Product = orange
    if User not in userList && not in duplicateList
      userList += row.User // add User to the userList
    else if User in userList
      remove User from userList
      duplicateList += row.User

请告知我是否可以改进问题标题。

1 个答案:

答案 0 :(得分:1)

<强>更新
试试这个:

SELECT Tab.`User`
FROM Tab
LEFT JOIN (SELECT `User`, COUNT(Product)
            FROM Tab
            GROUP BY `User`
            HAVING COUNT(Product) > 1) AS Tab2
ON Tab.`User` = Tab2.`User`
WHERE Product LIKE "Orange"
AND Tab2.`User` IS NULL