|
Как прочитать строку из БД и выполнить как запрос?
|
|||
---|---|---|---|
#18+
Задача: Есть таблица продуктов Код: plsql 1. 2. 3. 4. 5. 6. 7.
и таблица в которой хранятся фильтры к продуктам Код: plsql 1. 2. 3. 4. 5. 6.
поле sqlQuery хранит sql запрос для выборки продуктов, который представляет собой что-то вроде Код: plsql 1.
Необходимо найти все фильтры, которым соответствует хотя бы один продукт имя которого находится в заданном массиве. Что не получается: попытался решить задачу одним динамическим запросом Код: plsql 1. 2. 3. 4.
Но собственно не знаю как сделать то, что описано в комментарии запроса выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2022, 17:15 |
|
Как прочитать строку из БД и выполнить как запрос?
|
|||
---|---|---|---|
#18+
Bakuard, Читаем тут . Думаю идея будет понятна, адаптируете под свои задачи. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 10:11 |
|
Как прочитать строку из БД и выполнить как запрос?
|
|||
---|---|---|---|
#18+
Swa111, спасибо за ответ. Воспользовался вашим советом и попытался решить эту задачу через процедуру: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Но при попытке её создать вылазит ошибка: авторERROR: ОШИБКА: ошибка синтаксиса (примерное положение: ")") LINE 6: SELECT * FROM (EXECUTE filterQuery) AS P Подскажите пожалуйста, в чем может быть причина этой ошибки (я безуспешно пытался это нагуглить). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 10:22 |
|
Как прочитать строку из БД и выполнить как запрос?
|
|||
---|---|---|---|
#18+
Bakuard, Нет, Вы не правильно поняли. Суть в том что Вам нужно сначала сформировать запрос в виде строки а затем выполнить его. т.е. по факту два запроса, первый получает критерий второй уже продуктивный. Покажите несколько реальных вариантов из таблиц, что бы понять что пытаетесь получить ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 16:18 |
|
Как прочитать строку из БД и выполнить как запрос?
|
|||
---|---|---|---|
#18+
Swa111, ещё раз спасибо за помощь. Вот несколько реальных вариантов: В таблице Products лежат следующие строки: ('00000000-0000-0000-0000-000000000001', 'помидор', 250.56, 'Пяторочка') ('00000000-0000-0000-0000-000000000002', 'картофель', 80.56, 'Globus') ('00000000-0000-0000-0000-000000000003', 'Кефир', 70.56, 'Пяторочка') Насчет таблицы Filters, я опустил все поля, которые не связаны с вопросом. Код: plsql 1. 2. 3.
В этой таблице лежат такие строки: Код: plsql 1. 2. 3. 4. 5. 6. 7.
Код: plsql 1. 2. 3.
Необходимо вытащить все строки из таблицы Filters, которым соответствует хотя бы один продукт поле name которого содержится в указанном массиве: ('картофель', 'мука', 'яблоки') Ожидаемый результат: первая строка (в порядке, котором я их перечислил) из таблицы Filter ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 10:25 |
|
Как прочитать строку из БД и выполнить как запрос?
|
|||
---|---|---|---|
#18+
Bakuard, Все равно не очень понятно Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Если это поможет то советую пересмотреть архитектуру ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 18:59 |
|
|
start [/forum/topic.php?fid=53&tid=1993639]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
371ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
others: | 260ms |
total: | 705ms |
0 / 0 |