передача ПРЕДЕЛА как параметры к MySQL sproc

Я создаю класс подкачки страниц и потребность передать в двух параметрах моей хранимой процедуре MySQL для ПРЕДЕЛЬНОГО пункта.

Я передаю их в как INTs и пробую что-то вроде этого

SELECT *
FROM
`MyTable`
LIMIT
MyFirstParamInt, MySecondParamInt

это дает мне ошибку, когда я пытаюсь сохранить sproc все же. Существует ли способ сделать это, что я просто отсутствую? Или я оказываюсь перед необходимостью ОЦЕНКА целый запрос и ВЫПОЛНЯЮ его?

11
задан Grace Note 9 July 2010 в 17:48
поделиться

2 ответа

До 5.5.6 LIMIT не мог быть параметризован в хранимых процедурах MySQL. Вам нужно будет динамически построить запрос и выполнить его.

В версиях 5.5.6 и выше вы можете просто передать сохраненные параметры procs в качестве аргументов в LIMIT и OFFSET, если они являются INTEGER.

14
ответ дан 3 December 2019 в 02:10
поделиться

Из http://dev.mysql.com/doc/refman/5.1/en/select.html :

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

Вот пример подготовленного оператора, который может вам помочь:

SET @skip=1;
SET @rows=5;

PREPARE STMT FROM 'SELECT * FROM table LIMIT ?, ?';
EXECUTE STMT USING @skip, @rows;
10
ответ дан 3 December 2019 в 02:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: