Mysql 用Max删除
这是基于我的经验 我有下表 表1Mysql 用Max删除,mysql,max,delete-row,sql-delete,Mysql,Max,Delete Row,Sql Delete,这是基于我的经验 我有下表 表1 我怎样才能删除第三行Name=sound和max position?对不起,如果这没有考虑到您之前的问题,我只想看一下这个问题 DELETE FROM Table1 WHERE JobPositionId = ( SELECT MAX(JobPositionId) FROM Table1 WHERE JobPositionNam
我怎样才能删除第三行Name=sound和max position?对不起,如果这没有考虑到您之前的问题,我只想看一下这个问题
DELETE FROM
Table1
WHERE
JobPositionId = (
SELECT
MAX(JobPositionId)
FROM
Table1
WHERE
JobPositionName = 'Sound'
)
DELETE FROM Table1 WHERE jobpositionid = (SELECT MAX(jobpositionid) FROM table1 WHERE name = 'Sound');
使用:
,使用此选项不会触发MySQL 1093错误:
DELETE FROM TABLE
WHERE JobPositionId = SELECT x.id
FROM (SELECT MAX(JobPositionId) AS id
FROM TABLE
WHERE JobPositionName = 'Sound') x
看起来您试图做的是删除所有重复的JobPositionName,只留下JobPositionId最低的JobPositionName 我最近不得不做一些非常类似的事情,发现SQL语句变得如此复杂,在SQL中执行它要容易得多,但效率要低得多 所以,如果您试图清理的是一个受污染的数据库,只需编写一个脚本来执行此操作,并使用它完成操作,然后设置一些唯一的索引以防止再次发生这种情况
如果这种情况经常发生,并且需要定期进行,请修复执行此操作的代码。您应该链接上一个问题,以便其他人知道您在说什么;你的问题不清楚。你应该考虑改进它,这样人们就可以帮你了。好吧,其他答案更好——它们的格式比我的要好得多。MySQL错误1093-无法指定从子句中更新的目标表MySQL错误1093-无法指定从子句中更新的目标表?愚蠢的MySQL。我记得有一些解决方法,但我忘记了它是什么。更新-忘记了第二个子查询中的列别名。
DELETE FROM TABLE t1
JOIN (SELECT x.jobpositionname,
MAX(jobPositonId) AS max_id
FROM TABLE x
GROUP BY x.jobpositionname) t2
WHERE t1.jobPositonId = t2.max_id
AND t1.jobpositionname = t2.jobpositionname
AND t2.jobpositionname = 'Sound'
DELETE FROM TABLE
WHERE JobPositionId = SELECT x.id
FROM (SELECT MAX(JobPositionId) AS id
FROM TABLE
WHERE JobPositionName = 'Sound') x