有一个表messages包含如下所示的数据:
Id Name Other_Columns
-------------------------
1 A A_data_1
2 A A_data_2
3 A A_data_3
4 B B_data_1
5 B B_data_2
6 C C_data_1
Run Code Online (Sandbox Code Playgroud)
如果我运行查询select * from messages group by name,我会得到如下结果:
1 A A_data_1
4 B B_data_1
6 C C_data_1
Run Code Online (Sandbox Code Playgroud)
什么查询将返回以下结果?
3 A A_data_3
5 B B_data_2
6 C C_data_1
Run Code Online (Sandbox Code Playgroud)
也就是说,应返回每组中的最后一条记录.
目前,这是我使用的查询:
SELECT
*
FROM (SELECT
*
FROM messages
ORDER BY id DESC) AS x
GROUP BY name
Run Code Online (Sandbox Code Playgroud)
但这看起来非常低效.还有其他方法可以达到相同的效果吗?
是否可以暂时禁用MySQL中的约束?
我有两个Django模型,每个模型都有一个ForeignKey到另一个.由于ForeignKey约束,删除模型的实例会返回错误:
cursor.execute("DELETE FROM myapp_item WHERE n = %s", n)
transaction.commit_unless_managed() #a foreign key constraint fails here
cursor.execute("DELETE FROM myapp_style WHERE n = %s", n)
transaction.commit_unless_managed()
Run Code Online (Sandbox Code Playgroud)
是否可以暂时禁用约束并删除?
可能重复:
删除MySQL中的重复行
如何从MySQL表中删除所有重复数据?
例如,使用以下数据:
SELECT * FROM names;
+----+--------+
| id | name |
+----+--------+
| 1 | google |
| 2 | yahoo |
| 3 | msn |
| 4 | google |
| 5 | google |
| 6 | yahoo |
+----+--------+
Run Code Online (Sandbox Code Playgroud)
我会使用,SELECT DISTINCT name FROM names;如果它是一个SELECT查询.
我怎么做DELETE才能删除重复项并保留每个重复记录?
我有一个包含以下字段的表:
id (Unique)
url (Unique)
title
company
site_id
Run Code Online (Sandbox Code Playgroud)
现在,我需要删除具有相同的行title, company and site_id.一种方法是使用以下SQL和脚本(PHP):
SELECT title, site_id, location, id, count( * )
FROM jobs
GROUP BY site_id, company, title, location
HAVING count( * ) >1
Run Code Online (Sandbox Code Playgroud)
运行此查询后,我可以使用服务器端脚本删除重复项.
但是,我想知道是否只能使用SQL查询来完成.
我有一张桌子:
id | name1 | name2 | name3
1 | asa | NULL | das
2 | NULL | NULL | asas
我想删除有两次或多次NULL值的每一行(这里,id为2的
那个)我已经用一个小的PHP脚本做了但我不知道是否可以用mysql查询完成
我是mysql的新手,所以我还没有尝试过任何东西!
我有一个Rails 5应用程序.我有一个表格,里面填写了从各种来源提取的URL数据:
id url
1 http://google.com
2 http://yahoo.com
3 http://msn.com
4 http://google.com
5 http://yahoo.com
6 http://askjeeves.com
Run Code Online (Sandbox Code Playgroud)
如何从此表中删除重复项?
可能重复:
如何从mysql中的表中删除重复的行
我有一个简单的请求,正在变成一场噩梦.
我有一个表'MyTableA',有两列ID(int)和Value(varchar(100))
该表有一些像这样的值:
ID|Value 1|Apple 2|Apple 3|Apple
如果值是重复的,我想保留第一个ID行并删除其余行.所以在上面的例子中我想删除ID为2和3的行.
我认为这很简单,但可能是因为我正在使用带有子句的SQL.
谢谢!
所以我有一个表有多个相同的条目,我想删除重复的条目,但保留最新的记录,如果这是有道理的..
我有唯一的ID列,而我想要的只有1个相同的整数是"所有者"列,因为不需要有多个.
任何帮助是极大的赞赏.