반응형
mytable
pid name field
=== ==== =====
1 A1 0
2 A2 1
3 A3 1
4 A4 0
5 A5 0
이것은 내 테이블 구조입니다. 여기에서 무작위로 4 행을 선택하고 싶으므로 쿼리에서 RAND () mysql 함수를 사용합니다. 내 질문은
행에 어떻게 페어링합니까? 내 말은, pid 2와 3을 항상 하나씩 선택하고 싶습니다. 나는 다음 순서로 필요합니다. A2 A3 쌍을 깨고 싶지 않습니다.
A1 A2 A3 A4
또는 A2 A3 A4 A1
또는 A2 A3 A4 A5
또는 A4 A5 A2 A3
등
아래 쿼리를 사용했지만 작동하지 않습니다.
SELECT * FROM mytable ORDER BY RAND() ASC limit 0,4
해결 방법
turbod는 그의 대답에 가깝습니다. 그는 A2 및 A3에 관한 행과 함께 원하는 임의의 행을 얻은 후 pid로 주문하고 싶을 때 무작위로 주문했습니다.
(
SELECT *
FROM `mytable`
WHERE
name ='A2' OR
name ='A3'
LIMIT 2
)
UNION
(
SELECT DISTINCT *
FROM `mytable`
WHERE
name !='A2' OR
name !='A3'
ORDER BY RAND( ) LIMIT 2
)
ORDER BY `pid`
참조 페이지 https://stackoverflow.com/questions/5104141
반응형
'MySql' 카테고리의 다른 글
MySQL Apache와 MySQL이 이미 설치된 XAMPP (0) | 2020.10.18 |
---|---|
MySQL에서 테이블 메타 데이터 가져 오기 (0) | 2020.10.18 |
MySQL 다각형 포인트 가져 오기 mysql (0) | 2020.10.18 |
MySQL pip install mysqlclient 오류 (0) | 2020.10.18 |
MySQL SQL NOT BETWEEN 쿼리 (0) | 2020.10.17 |
댓글