Как написать SQL-запрос с динамическим LIMIT - PullRequest
5 голосов
/ 09 мая 2011

SELECT * FROM user LIMIT (SELECT group_limit FROM groups WHERE groupid = 7471);

1 Ответ

8 голосов
/ 09 мая 2011

Это из базы знаний MySQL Database :

Предложение LIMIT можно использовать для ограничения количества строк, возвращаемых оператором SELECT. LIMIT принимает один или два числовых аргумента, которые должны быть неотрицательными целочисленными константами (кроме случаев использования подготовленных операторов).

Чтобы ваш запрос работал, вам нужно написать его как подготовленный оператор , а затем выполнить его.

SET @a = (SELECT group_limit FROM groups WHERE groupid = 7471);

PREPARE STMT FROM 'SELECT * FROM user LIMIT ?';
EXECUTE STMT USING @a;
...