2012-06-04 2 views
-1

У меня есть 2 таблицы. Один из них содержит предельные числа.SQL/Limit (еще один запрос)

И я пытаюсь запустить SQL как

SELECT * FROM table WHERE x='1' LIMIT (another query) 
+2

какую ошибку вы получаете? – FSP

+1

В чем вопрос? Что вы пробовали? Как это случилось? Как мы можем помочь? –

+0

Просьба указать, если это MS SQL и/или MySQL –

ответ

0

В MySQL вы не можете сделать это с помощью регулярных querys. Предложение LIMIT не допускает переменных. Предложение LIMIT принимает только постоянные числа.

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

использование попробовать что-то вроде этого внутри кода SP:

DECLARE offset bigint 
SELECT your_field INTO offset FROM your_table where your_conditions 
SELECT * FROM other_table LIMIT offset; 
0

\ Вы делаете то, что я предложил несколько людей генерировать SQL из оператора выбора, а затем выполнить это. Вот мое решение:

SELECT "select * from other_table LIMIT ", your_field 
FROM your_table where your_conditions 

Затем выполните этот новый SQL. Конечно, это лучше всего работает в UNIX/Linux и с языком сценариев.

+0

Зачем вам нужен запрос для возврата SQL ??? – wroniasty

0

Используйте подготовленное заявление:

PREPARE stmt FROM "SELECT * FROM table WHERE x='1' LIMIT ?"; 
SET @limit = (another query); 
EXECUTE stmt USING @limit; 
Смежные вопросы