首页 > 编程知识 正文

mysql查看数据库,mysql根据某个字段去重

时间:2023-05-05 22:22:44 阅读:25798 作者:134

#问题在mysql数据库表osc_table_a中发生重复记录。 必须用sql重新开始。 只保留最初插入的记录。

表osc_table_a:

id row1 row2 row3

1 123 abc *****

2 123 def *****

3 123 abc *****

4 456 xyz *****

5 456 xyz *****

除重结果id row1 row2 row3

1 123 abc *****

2 123 def *****

4 456 xyz *****

##完全sql

DELETE t FROM osc_table_a t WHERE

osc_table_a.row1,

osc_table_a.row2

(IN ) )。

选择a.row 1,a.row2 FROM (

选择* from OSC _ table _ ATM P1 group by tmp1. row 1,tmp1.row2havingcount(tmp1.id ) 1

(a ) a

AND t.id NOT IN (

选择b.id from (

选择min (tmp2.id ) idfromosc _ table _ at MP2 group by tmp2. row 1,tmp2.row2havingcount ) tmp2. id ) 1

(b ) b

);

#问题

在mysql中使用DELETE别名问题

写deletetfromosc _ table _ at where…deletefromosc _ table _ at where…时,语法错误* SELECT * FROM osc_table_a b; (正确地说,可以使用表别名。)

* DELETE FROM osc_table_a b; (错误)

* DELETE b FROM osc_table_a b; (正确)

[ err ] 1093-you can ' tspecifytargettable ' OSC _ table _ a ' forupdateinfromclause

清除SELECT a.row1,a.row2 FROM、 a或SELECT b.id FROM、 b中的错误。

效果与将查询结果保存到临时表中后检索相同。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。