반응형
mysql 쿼리에서만 첫 번째 행 가져오기
만약 내가 다음과 같은 질문이 있다면,
select * from tbl_foo where name = 'sarmen'
이 테이블에는 = sarmen이라는 이름의 인스턴스가 여러 개 있습니다. 자동으로 발생하는 열을 만들지 않고도 어떻게 각 행에 행 번호를 가상으로 할당할 수 있습니까?나는 내가 하는 일에 이유가 있고 내 예에서 auto_incrated col이 필요하지 않습니다.
그래서 만약 각 행이 sql 또는 아마도 php를 통해 가상 행 번호를 할당한다면, 나는 내가 필요할 때 언제든지 첫 번째 행이나 마지막 행을 출력할 수 있을 것입니다.
thnx
하나의 행만 반환하는 방법LIMIT 1
:
SELECT *
FROM tbl_foo
WHERE name = 'sarmen'
LIMIT 1
'첫 번째 줄'이나 '마지막 줄'이라고 말하는 것은 말이 안 됩니다.ORDER BY
절다음을 추가한다고 가정합니다.ORDER BY
절을 사용하면 다음과 같은 방법으로 LIMIT를 사용할 수 있습니다.
- 첫 번째 행 사용 방법
LIMIT 1
. - 두 번째 행을 얻으려면 간격띄우기와 함께 한계를 사용할 수 있습니다.
LIMIT 1, 1
. - 마지막 행을 순서 반전(ASC를 DESC로 변경하거나 그 반대로 변경)하려면 다음을 사용합니다.
LIMIT 1
.
순서가 결정되는 방법을 지정하지 않았지만 MySQL에서 순위 값이 제공됩니다.
SELECT t.*,
@rownum := @rownum +1 AS rank
FROM TBL_FOO t
JOIN (SELECT @rownum := 0) r
WHERE t.name = 'sarmen'
그런 다음 순위 값을 기준으로 원하는 행을 선택할 수 있습니다.
다음을 사용하여 특정 이름이 포함된 총 행 수를 가져올 수 있습니다.
SELECT COUNT(*) FROM tbl_foo WHERE name = 'sarmen'
카운트에 따라 다음을 사용하여 n번째 행을 얻을 수 있습니다.
SELECT * FROM tbl_foo WHERE name = 'sarmen' LIMIT (n - 1), 1
여기서 1 <= n <= COUNT(*)는 첫 번째 쿼리에서 가져옵니다.
예:
세 번째 줄 얻기
SELECT * FROM tbl_foo WHERE name = 'sarmen' LIMIT 2, 1
언급URL : https://stackoverflow.com/questions/3217217/grabbing-first-row-in-a-mysql-query-only
반응형
'programing' 카테고리의 다른 글
Swift - 하위 클래스에 의해 재정의되어야 하는 클래스 메서드 (0) | 2023.08.31 |
---|---|
Internet Explorer 11 "스토리지 부족" 오류 (0) | 2023.08.26 |
테이블 변경/작성 InnoDB가 너무 깁니다. (0) | 2023.08.26 |
ImageDataGenerator 사용 시 Keras 분할 트레인 테스트 세트 (0) | 2023.08.26 |
기존 도커 컨테이너에 볼륨을 추가하려면 어떻게 해야 합니까? (0) | 2023.08.26 |