Mysql 使用LIKE分组删除重复行
我在数据库(mysql)中有一个字符串,如下所示:Mysql 使用LIKE分组删除重复行,mysql,sql,json,group-by,duplicate-removal,Mysql,Sql,Json,Group By,Duplicate Removal,我在数据库(mysql)中有一个字符串,如下所示: {"StateId":73,"CallTime":"\/Date(1336365498912+0500)\/","CallId":"1336365489.14157","Target":"agi://127.0.0.1"}},"Profile":{"$type":"DataWriter.DbProfile, DataWriterObjects","Name":"DataService","Provider":"mssql","Connectio
{"StateId":73,"CallTime":"\/Date(1336365498912+0500)\/","CallId":"1336365489.14157","Target":"agi://127.0.0.1"}},"Profile":{"$type":"DataWriter.DbProfile, DataWriterObjects","Name":"DataService","Provider":"mssql","ConnectionString":"Data Source=localhost\\mydb; Database=mydb; User Id=sa; Password=admin;"}}
字符串是包含多个字段的JSON对象。问题是我有多个重复的行要从数据库中删除。如果CallId和StateId相同,但CallTime不同,则一行被视为重复。因此,首先我想得到那些具有CallId相同且忽略CallTime中的差异的行的重复项列表(GROUP BY)。下面的记录从第一个不同的<<强> CaldTime/Stand >但是相同的<强> > Calele,因此它被认为是一个复制品(基本上不需要考虑<强> CaldTime/Stand >重复)
那我怎么做一个小组?基本上,应该忽略CallTime值来匹配组BY中的所有内容
表结构是
mysql> describe Statements;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| SequenceId | bigint(10) | NO | PRI | NULL | auto_increment |
| Profile | varchar(32) | YES | MUL | NULL | |
| CacheItem | text | NO | | NULL | |
+------------+-------------+------+-----+---------+----------------+
之后,我想删除重复的。有人帮我吗?我认为您的数据库不够原子化,您可能需要将JSON字符串拆分为单独的字段
mysql> describe Statements;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| SequenceId | bigint(10) | NO | PRI | NULL | auto_increment |
| Profile | varchar(32) | YES | MUL | NULL | |
| CacheItem | text | NO | | NULL | |
+------------+-------------+------+-----+---------+----------------+