我需要消除类似的重复。我有一列包含以下值:
old1950
old1933
old1985
new_1950
new_1985
new_2008
运行删除命令后应该留下:
old1950
old1933
old1985
new_2008
如您所见,删除命令应保留旧命令。
所有数字前面都有一个标题“旧”或“新”字面意思。
我怎样才能实现这个目标?
现在我正在运行以下代码,它工作正常,感谢 fthiella
CREATE TABLE yourtable (
`accountID` varchar(32) NOT NULL,
`deviceID` varchar(32) NOT NULL,
col VARCHAR(20),
PRIMARY KEY (`accountID`,`deviceID`)
);
INSERT INTO yourtable VALUES
(1,1,'old1950'),
(1,2,'old1933'),
(1,3,'old1985'),
(1,4,'new_1950'),
(1,5,'new_1985'),
(1,6,'new_2008');
DELETE y1
FROM
yourtable y1 INNER JOIN yourtable y2
ON y1.col LIKE 'new_%' AND y2.col LIKE 'old%'
AND SUBSTR(y1.col, 5)=SUBSTR(y2.col, 4)