2010-05-29 6 views
0

저는 PHP를 연구하고 있습니다. 이전에 MySQL을 사용 중이었습니다. 다음은 내가 사용한 코드입니다. -SQLite 데이터베이스에서 임의의 레코드를 가져 오는 방법은 무엇입니까?

$offset_result = mysqli_query($con, " SELECT FLOOR(RAND() * COUNT(*)) AS `offset` FROM students "); 
$offset_row = mysqli_fetch_object($offset_result); 
$offset = $offset_row->offset; 
$result = mysqli_query($con, " SELECT name FROM students LIMIT $offset, 1 ");  
$row = mysqli_fetch_row($result); 
mysqli_free_result($result); 

SQLite의 해당 명령문 집합은 무엇이 될까요?

답변

4

RANDRANDOM으로 변경하고 FLOOR(x)CAST(x AS INTEGER)으로 변경하면 이러한 SQL 쿼리가 SQLite에서 작동합니다.

그것을 할 수있는 약간 간단한 방법

은 임의의 숫자에 의해 주문하는 것입니다 : 테이블이 매우 큰 경우

SELECT name 
FROM students 
ORDER BY RANDOM() 
LIMIT 1 

당신이 그 일을하는 방법이 더 효율적입니다.

관련 문제