[SQL] 최대 값을 기준으로 행을 삭제
SQL최대 값을 기준으로 행을 삭제
어떻게 최대 값을 기준으로 행을 삭제하는 MySQL의 쿼리를 구성 할 수 있습니다.
나는 시도
WHERE jobPositonId = max(jobPostionId)
하지만 오류가있어?
해결법
-
==============================
1.사용하다:
사용하다:
DELETE FROM TABLE t1 JOIN (SELECT MAX(jobPositonId) AS max_id FROM TABLE) t2 WHERE t1.jobPositonId = t2.max_id
중복이있는 경우 마음은 그 jobPositonId 값을 가진 모든 행이 제거됩니다.
1093 오류에 대한 멍청한 부분은 자체 참조 사이에 하위 쿼리를 배치하여 주위를 얻을 수 있다는 것입니다 :
DELETE FROM TABLE WHERE jobPositonId = (SELECT x.id FROM (SELECT MAX(t.jobPostionId) AS id FROM TABLE t) x)
(가) 업데이트되는 동일한 테이블에 첫 번째 수준 하위 쿼리가 있다면, UPDATE 및 DELETE 문을 사용하는 경우 MySQL은 만 확인하고 있습니다. 두 번째 수준 (또는 깊이) 하위 쿼리 다른 작품에 넣어 이유입니다. 그러나 단지 하위 쿼리를 확인하는 것 - (가) 구문은 논리적으로 동일하지만 오류를 트리거하지 않습니다 가입하세요.
-
==============================
2.
DELETE FROM table ORDER BY jobPositonId DESC LIMIT 1
-
==============================
3.
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)
-
==============================
4.이 작품 :
이 작품 :
SELECT @lastid := max(jobPositonId ) from t1; DELETE from t1 WHERE jobPositonId = @lastid ;
두 번 데이터베이스에가는 것보다 다른,이 기술이 아무것도 잘못이다?
from https://stackoverflow.com/questions/3620940/deleting-a-row-based-on-the-max-value by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 합니까 MS 액세스 (2003) 저장 프로 시저에 비해 아무것도. 나는 MS의 acceess에서 복잡한 쿼리를 실행하려면 (0) | 2020.06.16 |
---|---|
[SQL] PostgreSQL의에서 소수점 후 비 제로 레코드를 가져 오기 (0) | 2020.06.16 |
[SQL] 자연 프로덕션 환경에 유해한 것으로 간주 (JOIN)인가? (0) | 2020.06.16 |
[SQL] 표 트리거 / 함수 (2.5 이하로 떨어지는 평균 등급을 정지)를 볼 수있다 돌연변이 (0) | 2020.06.16 |
[SQL] 읽기 / MySQL의에서 쓰기 유니 코드 데이터를 (0) | 2020.06.16 |