mysql - 如何选择两个字段唯一的记录

标签 mysql

我有一个看起来像这样的表:

+-------------+----------+---------------+------------+
| Contract_ID |   Name   |   Username    |  Password  |
+-------------+----------+---------------+------------+
|    12345671 | Facebook | john.doe      | password   |
|    12345672 | Google   | john.doe      | password   |
|    12345673 | Apple    | martha.malone | doodlebear |
|    12345674 | Samsung  | jimmy47       | parkour445 |
|    12345675 | HTC      | rick.grimes   | simpsons33 |
+-------------+----------+---------------+------------+

我只想选择用户名/密码组合与契约(Contract) ID 之间的比例为一比一的记录。在这种情况下,这意味着我想选择该表中的第 3、4 和 5 条记录。

我尝试了 DISTINCT 关键字的不同组合,但这似乎不是正确的选择。是否有可以返回此信息的查询?

作为一种奖励问题:是否存在可以产生相反结果的查询(即仅记录契约(Contract) ID 和用户名/密码组合之间的比率大于 1 比 1 的情况)?

最佳答案

您应该将 GROUP BY 子句与 HAVING 子句一起使用,例如:

SELECT Username, Password FROM Table
GROUP BY Username, Password
HAVING COUNT(*) = 1

相反的是:

SELECT Username, Password FROM Table
GROUP BY Username, Password
HAVING COUNT(*) > 1

关于mysql - 如何选择两个字段唯一的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18254387/

相关文章:

html - 使用我数据中的数字对表格进行排序

mysql - Ubuntu 16.04 无法重建 mySQL

php - 如何使 PHP if 语句依赖于 SQL 查询结果

sql - MySQL View - 何时使用和何时不使用

c# - 如何为SQL Server和MySql制作数据访问层

php - 我如何链接回通知

php - 异常信息:Message: Invalid controller specified (index)

Mysql 关于重复键更新 - 如何使其不插入新行?

php - WHERE DateInterval 无法转换为字符串

mysql - UTF-8:一般?垃圾桶?统一码?