source

LIMIT 오프셋에서 MySQL 함수를 사용할 수 있습니까?

gigabyte 2022. 11. 18. 21:28
반응형

LIMIT 오프셋에서 MySQL 함수를 사용할 수 있습니까?

에서 MySQL 함수를 사용할 수 있습니까?LIMIT오프셋?예를 들어 다음과 같습니다.

SELECT * FROM sites WHERE ... LIMIT FLOOR(1 + RAND() * (SELECT COUNT(*) FROM sites)) , 1

아니, 직접 할 수는 없어. LIMIT그리고.OFFSET값은 상수여야 합니다.

MySQL 문서에서 인용:

LIMIT 구를 사용하면 SELECT 문에 의해 반환되는 행 수를 제한할 수 있습니다.LIMIT는 하나 또는 두 개의 숫자 인수를 사용합니다. 둘 다 음수가 아닌 정수 상수여야 합니다(준비된 문을 사용하는 경우 제외).

단, 준비된 문과 변수를 사용할 수 있습니다.

SELECT @offset:=FLOOR(1 + RAND() * COUNT(*)) FROM sites;
PREPARE STMT FROM 'SELECT * FROM sites WHERE ... LIMIT ?, 1';
EXECUTE STMT USING @offset; 

언급URL : https://stackoverflow.com/questions/33168004/can-i-use-mysql-functions-in-the-limit-offset

반응형