반응형
MySQL에서는 RAND () 함수를 사용할 수 있습니다. SQLite 3에 대안이 있습니까?
해결 방법
SELECT foo FROM bar
WHERE id >= (abs(random()) % (SELECT max(id) FROM bar))
LIMIT 1;
위에서 설명한 일반 ROWID 선택 알고리즘은 monotonically increasing unique ROWIDs as long as you never use the maximum ROWID value and you never delete the entry in the table with the largest ROWID. If you ever delete rows, then ROWIDs from 이전에 삭제 된 행은 새 행을 만들 때 재사용 될 수 있습니다 .
위의 내용은 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의 별칭입니다.
참조 페이지 https://stackoverflow.com/questions/1253561
반응형
'MySql' 카테고리의 다른 글
MySQL 배열을 파일에 쓰는 가장 좋은 방법은 무엇입니까? (0) | 2021.01.27 |
---|---|
MySQL : 특정 시간대의 현지 시간 가져 오기 (0) | 2021.01.27 |
MySQL 데이터베이스에서 오늘 / 어제 데이터를 가져 오는 방법은 무엇입니까? (0) | 2021.01.27 |
MySQL 비교에 적합한 루비 날짜 시간 (0) | 2021.01.27 |
MySQL 서버에서 페이지를 요청하는 클라이언트에 대한 정보를 얻는 방법은 무엇입니까? (0) | 2021.01.27 |
댓글