반응형
나는 이것을 명확히하려고 노력할 것이다.
ID를 사용하지 않고 선택한 행에서 특정 행과 이전 상대 행 하나와 선택한 행에서 다음 상대 행 하나를 선택해야합니다. 이것이 가능한가? 간단히 말해서 이전과 다음.
내가 ID를 사용할 수없는 이유는 (어쩌면 나는 그냥 어떻게하는지 모르겠다), 그들이 순차적 인 순서가 아니기 때문이다. 이 다소 미숙하고 무작위적인 예에서 볼 수 있듯이 간격이 있습니다.
TABLE <-the name of the table
+----+----------------------+-------+
| id | name | value |
+----+----------------------+-------+
| 1 | some_name | asf |
+----+----------------------+-------+
| 4 | hello | A3r |
+----+----------------------+-------+
| 5 | how_do_you_do | HR5 |
+----+----------------------+-------+
| 8 | not_bad | 00D |
+----+----------------------+-------+
| 12 | i_like_women | lla |
+----+----------------------+-------+
| 13 | are_you_serious | 1Ha |
+----+----------------------+-------+
| 15 | nah_i_kid | Ad4 |
+----+----------------------+-------+
| 17 | it_is_just_the_boobs | Zc5 |
+----+----------------------+-------+
| 18 | thank_god | 102 |
+----+----------------------+-------+
| 44 | no_kidding | jjy |
+----+----------------------+-------+
먼저 열 중 하나에서 특정 값을 기준으로 하나의 행을 선택해야합니다. 방법을 알고 있습니다.
SELECT `value`
FROM `TABLE`
WHERE name = 'i_like_women'
그러면 값이 lla 인 id 12의 행 하나가 선택됩니다.
내가 필요한 것은 이름이 'not_bad'인 행과 'are_you_serious'라는 이름을 지정하지 않고 다른 행을 두 개 이상 선택하는 것입니다. 즉,이 선택된 항목에 상대적인 이전 및 다음 항목입니다.
요컨대, 하나의 값을 기준으로 3 개의 행을 선택해야합니다. 짐작할 수 있듯이 저는 MySQL을 처음 사용합니다.
시간과 관심에 감사드립니다. 나를 돕는 것을 즐기십시오.
해결 방법
이를 수행하는 가장 간단한 방법은 연속적이지는 않지만 ID가 오름차순이라는 사실을 이용하는 것입니다.
예를 들면 :
SELECT * FROM Table WHERE id = 8
UNION
--Select the first item less than 8
SELECT * FROM Table WHERE id = (SELECT MAX(id) FROM Table WHERE id < 8)
UNION
--select the first item greater than 8
SELECT * FROM Table WHERE id = (SELECT MIN(id) FROM Table WHERE id > 8)
문자열 만 아는 경우 :
DECLARE _id INT
SELECT _id = id FROM Table WHERE value = 'i_like_women'
그런 다음이 _id
를 8 대신 위의 쿼리에 입력 할 수 있습니다.
테이블과 열 이름을 구분하기 위해`를 사용할 필요가 없습니다.
참조 페이지 https://stackoverflow.com/questions/12430774
반응형
'MySql' 카테고리의 다른 글
MySQL 대용량 SQL 파일을 가져올 때 MySQL 서버가 사라졌습니다. (0) | 2021.01.28 |
---|---|
MySQL 하나의 열 mysql에 여러 값을 삽입합니까? (0) | 2021.01.28 |
MySQL SELECT MAX (... PHP / MYSQL에서 아무것도 반환하지 않음 (0) | 2021.01.28 |
MySQL 힌디어로 데이터를 유니 코드로 저장하는 방법 (0) | 2021.01.28 |
MySQL 존재하는 경우 업데이트 오류 (0) | 2021.01.28 |
댓글