반응형
mySQL 서브쿼리 제한
이건 아마 쉬운 문제일 거야이 쿼리를 사용하여 원하는 것을 달성하려면 어떻게 해야 합니까?
delete from posts where id not in
(SELECT id FROM posts order by timestamp desc limit 0, 15)
그래서 요약하자면, 저는 최신 15일에 없는 모든 게시물을 삭제하고 싶습니다.
내가 그 질문을 해보면, 나는 그것을 이해한다.
MySQL은 아직 'LIMIT & IN / ALL / ANY / SOME 서브쿼리'를 지원하지 않습니다.
편집
mySQL Server version: 5.5.8
mySQL Client version: mysqlnd 5.0.7-dev - 091210 - $Revision: 304625 $
오류: #1235 - 이 버전의 MySQL은 아직 'LIMIT & IN / ALL / ANY / SOME 서브쿼리'를 지원하지 않습니다.
이것을 시험해 보세요.
DELETE
FROM posts
WHERE id not in (
SELECT * FROM (
SELECT id
FROM posts
ORDER BY timestamp desc limit 0, 15
)
as t);
다음과 같이 시험해 보십시오.
DELETE
p1.*
FROM
posts p1 INNER JOIN
(SELECT
id
FROM
posts
ORDER BY timestamp DESC
LIMIT 0, 15
) AS p2
ON p1.id = p2.id;
내림차순으로 주문하면 항상 처음 15개부터 최신 15개가 오니까요.처음 15번 안에 들어가지 않은 아이디는 삭제해도 됩니다.그래서 그냥 해봤는데 잘 됐어요.누군가에게 도움이 됐으면 좋겠다.
Delete from `table` where id not in (SELECT * FROM (Select id from `table` order by id desc limit 15) as derivedTable);
언급URL : https://stackoverflow.com/questions/7124418/mysql-subquery-limit
반응형
'programing' 카테고리의 다른 글
카탈로그, 스키마, 사용자 및 데이터베이스 인스턴스 간의 관계 (0) | 2022.09.30 |
---|---|
MySQL 5.7.12 가져오기에서는 CHARTER SET 'binary' 문자열에서 JSON 값을 생성할 수 없습니다. (0) | 2022.09.30 |
Panda는 시리즈/데이터프레임 컬럼을 조건부 생성 (0) | 2022.09.30 |
뷰 라우터를 통해 로드된 컴포넌트에 Vue.js 스코프 스타일을 적용하는 방법 (0) | 2022.09.30 |
문자열에서 선두 문자를 제거하려면 어떻게 해야 합니까? (0) | 2022.09.30 |