SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 10.11.2007 16:40:25

Oleg
Участник
Зарегистрирован: 10.11.2007
Сообщений: 2

Динамический LIMIT

Можно ли сделать без хранимых процедур, так как хостер не поддерживает.
Поясню, в одной таблице хранится значение сколько записей выводить, надо sql запросом подставить это значение в LIMIT,
что-товроде SELECT * FROM x LIMIT (SELECT y FORM z)

Неактивен

 

#2 10.11.2007 16:56:55

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Динамический LIMIT

нет, только константы

Неактивен

 

#3 10.11.2007 17:07:10

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 847

Re: Динамический LIMIT

Если у хостера MySQL 5, то Вас спасут PREPARED STATEMENTS:
http://dev.mysql.com/doc/refman/5.0/en/sqlps.html
(версию сервера MySQL можно выяснить с помощью команды SELECT VERSION()wink

PREPARE lim FROM 'SELECT ... FROM table_name LIMIT ?, ?';
SELECT ... INTO @start;
SELECT ... INTO @end;
-- обратите внимание: SELECT'ы должны быть скалярными,
-- т.е. возвращать только одну строку, содержащую один столбец
EXECUTE lim USING @start, @end;

Ну или можете прямо сразу результаты нужных SELECT'ов загнать в строку, а потом уже из нее приготовить выражение.
Только не забудьте, что они живут одну сессию.

Неактивен

 

#4 10.11.2007 21:14:45

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Динамический LIMIT

Как вариант - подготовить запрос в PHP/Perl/то,-что-у-Вас-используется и отправить уже
в MySQL LIMIT с константой.

Неактивен

 

#5 11.11.2007 00:22:36

Oleg
Участник
Зарегистрирован: 10.11.2007
Сообщений: 2

Re: Динамический LIMIT

Благодарю, LazY, все заработало,

вот что получилось:
SELECT value INTO @limit FROM settings WHERE anchor LIKE '#reviewscount#';
SET @sql = CONCAT('select * from reviews ',' LIMIT ',@limit);
PREPARE stmt FROM @sql;
EXECUTE stmt;

php в моем случае не подходит,
так как я себе такой шаблонизатор сделал,
где есть только html шаблоны,
класс шаблонизатора и mysql таблицы,
теперь пытаюсь одним sql обойтись

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson