这个问题非常简单我出于某种原因无法获得正确的结果来显示重复的记录
Table : Paypal_ipn_orders
id payer_email
1 susan@gmail.com
2 ryan@gmail.com
3 susan@gmail.com
4 steve@gmail.com
5 steve@gmail.com
SELECT id, COUNT( payer_email ) `tot`
FROM paypal_ipn_orders
GROUP BY payer_email
HAVING `tot` >1
Run Code Online (Sandbox Code Playgroud)
样本输出
id tot
1 2
4 2
Run Code Online (Sandbox Code Playgroud)
预期产出
id payer_email
1 susan@gmail.com
3 susan@gmail.com
4 steve@gmail.com
5 steve@gmail.com
Run Code Online (Sandbox Code Playgroud)
我该如何实现这一目标?
我正在使用MySQL 5.1.56,MyISAM.我的表看起来像这样:
CREATE TABLE IF NOT EXISTS `my_table` (
`number` int(11) NOT NULL,
`name` varchar(50) NOT NULL,
`money` int(11) NOT NULL,
PRIMARY KEY (`number`,`name`)
) ENGINE=MyISAM;
Run Code Online (Sandbox Code Playgroud)
它包含这两行:
INSERT INTO `my_table` (`number`, `name`, `money`) VALUES
(1, 'S. Name', 150), (2, 'Another Name', 284);
Run Code Online (Sandbox Code Playgroud)
现在我想插入另一行:
INSERT INTO `my_table` (`number`, `name`, `money`) VALUES
(2, 'S. Name', 240);
Run Code Online (Sandbox Code Playgroud)
MySQL告诉我这个时不会插入它:
#1062 - Duplicate entry '2-S. Name' for key 'PRIMARY'
Run Code Online (Sandbox Code Playgroud)
我真的不明白.主键位于前两列(两者都是),因此我尝试插入的行是一个唯一的主键,不是吗?
我试图修复表,我试图优化表,一切都无济于事.另请注意,我无法从MyISAM更改为InnoDB.
我错过了什么或者这是MySQL或MyISAM的错误吗?谢谢.
总结并指出我认为的问题所在(尽管不应该存在): Table在两列上有主键.我试图在这两列中插入一个具有新值组合的行,但第一列中的值已经在某行中,第二列中的值已经在另一行中.但它们并没有任何组合,所以我相信这应该有用,我很困惑,看到它没有.
如果您能帮助我解决此sql问题,将不胜感激。
我有一个包含两列的表。在此示例中,将它们命名为UserID和LocationID。
我想清理该表,所以我想保留每个唯一的UserID和LocationID对的第一次出现,并删除包含相同对的其他行。换句话说,我想知道他去过的每个用户的每个位置。如果他一次又一次访问同一个地方并被记录下来,我想删除这些记录。例如,这是原始表:
ID UserID LocationID
1. "user1" "location1"
2. "user1" "location2"
3. "user2" "location3"
4. "user1" "location1"
5. "user2" "location3"
6. "user2" "location3"
Run Code Online (Sandbox Code Playgroud)
我想删除4.,5和6.行。
是否可以在一个mysql命令中解决它?谢谢。
如果我有以下模型:
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
Run Code Online (Sandbox Code Playgroud)
如何列出具有非唯一姓氏字段的所有对象?例如,如果有 20 个对象的姓氏均为“Smith”,则会列出它们。但是,如果只有一个对象的姓氏为“Euler”,则它不会包含在列表中。