Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подстановка параметров в IN (...) в хранимой процедуре
 
 автор: zy19   (14.01.2009 в 22:20)   письмо автору
 
 

Привет!

В хранимой процедуре есть запрос, типа:

select count(*) INTO counter from words where word in (someWords);


Где someWords должен быть списком ключей, создаваемым динамически, например:
'word1', 'word2', 'word3', 'word4'

Если я подставляю такое значение в select, оно рассматривается, как я понимаю, как одна переменная типа varchar, и, соответственно, я получаю не то, что хотел.

Есть ли способ передать список параметров в такой запрос, т.е. в IN (...)?

Заранее благодарен и пр..

  Ответить  
 
 автор: ronin80   (15.01.2009 в 09:25)   письмо автору
 
   для: zy19   (14.01.2009 в 22:20)
 

давно волнует этот вопрос, просто не было острой необходимости, я реализовал это в приложении, например собираю список ключей для конструкции in и программно в приложении через Query компонент выполняю нужные действия

выполнение транзакции также выполняется в приложении (start transaction, commit, rollback) с использованием свойств data компонентов

работаю в Delphi, доступ через MyDac

в сети нашёл ещё одно решение, например можно создать временную таблицу, заполнить её выбранными значениями ключей, а в процедуре в конструкцию IN подставить запрос выбирающий данные значения из временной таблицы, после чего удалить таблицу

>В хранимой процедуре есть запрос, типа:
>

>select count(*) INTO counter from words where word in (someWords);


это будет выглядеть так select count(*) INTO counter from words where word in (select words from temp_table)

ну как создать временную таблицу и наполнить её значениями надеюсь разберётесь :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования