Delete row based on maximum value

How can I structure mySQL query to delete a row based on maximum value.

I tried

WHERE jobPositonId = max(jobPostionId)

but got an error?

+5
source share
4 answers

Using:

DELETE FROM TABLE t1 
       JOIN (SELECT MAX(jobPositonId) AS max_id FROM TABLE) t2 
 WHERE t1.jobPositonId  = t2.max_id

Note that all rows with this value jobPositonIdwill be deleted if there are duplicates.

The stupid part of error 1093 is that you can get around it by placing a subquery between self-imposing:

DELETE FROM TABLE
 WHERE jobPositonId = (SELECT x.id
                         FROM (SELECT MAX(t.jobPostionId) AS id 
                                 FROM TABLE t) x)

Description

MySQL UPDATE DELETE, , . ( ) . - JOIN , .

+11
DELETE FROM table ORDER BY jobPositonId DESC LIMIT 1
+14
DELETE FROM `table_name` WHERE jobPositonId = (select max(jobPostionId) from `table_name` limit 1)

DELETE FROM `table_name` WHERE jobPositonId IN (select max(jobPostionId) from `table_name` limit 1)
+1

:

SELECT @lastid := max(jobPositonId ) from t1; 
DELETE from t1 WHERE jobPositonId = @lastid ; 

, , - ?

0

All Articles