[SQL] SQLite는 - ORDER BY RAND ()
SQLSQLite는 - ORDER BY RAND ()
MySQL의에서 나는 RAND () 함수를 사용하여, SQLite는 3 어떤 대안이 있는가?
해결법
-
==============================
1.) (임의 사용 :
) (임의 사용 :
SELECT foo FROM bar WHERE id >= (abs(random()) % (SELECT max(id) FROM bar)) LIMIT 1;
(QOP에 의해) 편집 : SQLite는 Autoincremented 열 상태에있는 문서 이후 그 :
당신이 INTEGER PRIMARY KEY AUTOINCREMENT 열이없는 경우는 위의 (가 INTEGER PRIMARY KEY 열이있는 잘 작동 여전히 것)에만 해당됩니다. 어쨌든,이 더 휴대용 / 신뢰할 수 있어야 :
SELECT foo FROM bar WHERE _ROWID_ >= (abs(random()) % (SELECT max(_ROWID_) FROM bar)) LIMIT 1;
ROWID, _ROWID_ 및 OID는 SQLite는 내부 행 ID에 대한 모든 별칭이다.
-
==============================
2.
SELECT * FROM table ORDER BY RANDOM() LIMIT 1;
-
==============================
3.해결 :
해결 :
SELECT * FROM table ORDER BY RANDOM() LIMIT 1;
-
==============================
4.훨씬 더 나은 성능을 위해 SQLite는이를 사용 :
훨씬 더 나은 성능을 위해 SQLite는이를 사용 :
SELECT * FROM table WHERE id IN (SELECT id FROM table ORDER BY RANDOM() LIMIT x)
이것은 또한 MySQL을 적용 할 수있다. 이 빠르게 실행 SQL 엔진 첫 번째로드 정렬 그들, 여기에 우리가 행의 id 필드를로드하고 무작위 분류 한 후 메모리에 행 필드를 예상하기 때문에, 그럼 우리는 그들의 X를 얻고, 것입니다 이러한 X ID의 전체 행을 찾을 수 기본 색인.
from https://stackoverflow.com/questions/1253561/sqlite-order-by-rand by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 업데이트에 참여하기위한 MySQL의 구문 (0) | 2020.04.10 |
---|---|
[SQL] LIKE 및 IN 조건 매개 변수화 된 쿼리 (0) | 2020.04.10 |
[SQL] 행의 예기치 않은 수의 영향을 저장 갱신, 삽입 또는 삭제 문 (0)에 대한 솔루션 (0) | 2020.04.10 |
[SQL] JDBC 매김 (0) | 2020.04.10 |
[SQL] SQL 서버에서만 날짜와 날짜를 비교하는 방법 (0) | 2020.04.10 |