Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 用Max删除_Mysql_Max_Delete Row_Sql Delete - Fatal编程技术网

Mysql 用Max删除

Mysql 用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

这是基于我的经验

我有下表

表1


我怎样才能删除第三行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