|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
Здравствуйте, форумчане ! Есть большой запрос на выборку из нескольких таблиц с подзапросами типа select from (select).. + join (select..) + select from table1, (select ..) Есть ли возможность как-то внести его в БД (метаданные). - UDF не позволяет возвращать набор данных, - SP не позволяет делать ORDER BY и WHERE к возвращаемому результсету, а также использовать ее в подзапросах, - VIEW не разрешает подзапросы. Версия сервера 5.1.73 Вопрос: есть ли средство для решения этой проблемы ? ЗЫ. В MS SQL/Interbase/Oracle/PostgeSQL эта проблема легко решается через UDF. Как это можно сделать в MySQL ? Спасибо за любые советы и полезные ссылки. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 14:35 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
CTE? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 15:04 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
Ролг ХупинСТЕСТЕ с вер.8 MsGuns, авторЕсть ли возможность как-то внести его в БД (метаданные).ничего непонятно, что и откуда куда вносить если есть запрос - его просто надо выполнить в любом случае любой запрос можно разбить на части используя временные таблицы как вариант подготовить -выполнить см. PREPARE-EXECUTE ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 15:21 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
Alex_Ustinov->"ничего непонятно, что и откуда куда вносить" Есть рабочий запрос, который будет часто выполняться в разных клиентах (phpmyadmin, dbforge и др). Очень неудобно (особенно на моб.устройствах) его откуда-то копипастить и потом еще дописывать where, order by, group by, having и т.д. Нужно, чтобы можно было его запускать как часть запроса, например select * from udf_selfulluserinfo() where dogdate = now() and user_sate = 1 order by user_address такой простой запрос может написать по простейшей инструкции любой сотрудник конторы (провайдер инета). Вместо того, чтобы иметь дело с простыней в 100 строк, в которой он точно чего-то пакосячит :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 16:12 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
Я было подумал написать хранимку с параметрами для условий выборки и указанием колонок сортировки, а в ней с помощью динамического запроса делать нужные манипуляции, но колонок много (около 20) и придется писать зубодробительную логику на 200 строк. Поэтому от такого варианта отказался. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 16:19 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
MsGuns, Как положить в метаданные сервера сложный запрос на выборку если схема известна то сделать доп таблицы для складывания промежуточных данных. обычная бизнес-логика ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 17:10 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
Не выход. Этим запросом может пользоваться ндцать человек, контора большая, причем одновременно. Одна таблица на всех для РАЗНЫХ данных - это как ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 17:17 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
Блин, кажись дошло :) 1. Есть SP, которая выполняет простыню и кладет результат полной выборки в таблицу, предварительно дропая ее, если он уже есть. 2. Сотрудник набирает сначала Call SP(), а потом нужный простой Select * from <фиксированное имя таблицы > where .. order by .. 3. Наслаждается результатом Я правильно понял ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 17:26 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
MsGuns, полную бизнес-логику опишите. ничего непонятно. Если в запросе 55 параметров - то нужна таблица параметров, в которую будут кидать данные клерки Собирать запрос PREPARE-EXECUTE Лучше по простому, как в слесарной мастерской - "Я начальник у меня 5 отелов. каждый отдел выгружает такую то информацию и т.д. и. т.п Если кто-то поймет - подскажут ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 17:31 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
MsGuns Блин, кажись дошло :) 1. Есть SP, которая выполняет простыню и кладет результат полной выборки в таблицу, предварительно дропая ее, если он уже есть. 2. Сотрудник набирает сначала Call SP(), а потом нужный простой Select * from <фиксированное имя таблицы > where .. order by .. 3. Наслаждается результатом Я правильно понял ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 17:32 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
MsGuns Блин, кажись дошло :) 1. Есть SP, которая выполняет простыню и кладет результат полной выборки в таблицу, предварительно дропая ее, если он уже есть. 2. Сотрудник набирает сначала Call SP(), а потом нужный простой Select * from <фиксированное имя таблицы > where .. order by .. 3. Наслаждается результатом Я правильно понял ? + почитайте то, что вы писали в первом месыдже ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 18:16 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
MsGuns VIEW не разрешает подзапросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 20:26 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
miksoft MsGuns VIEW не разрешает подзапросы. Subqueries cannot be used in the FROM clause of a view. https://dev.mysql.com/doc/refman/5.6/en/view-restrictions.html ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 20:43 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
MsGuns, здесь http://download.nust.na/pub6/mysql/doc/refman/5.1/en/subquery-errors.html топ-ошибки в 5.1 в подзапросах. Если есть что-то похожее, то укажите если 5.1 то смотрим на 5.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 20:44 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
MsGuns Subqueries cannot be used in the FROM clause of a view. https://dev.mysql.com/doc/refman/5.6/en/view-restrictions.html Ветке 5.1 уже 13 лет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 20:59 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
miksoft MsGuns Subqueries cannot be used in the FROM clause of a view. https://dev.mysql.com/doc/refman/5.6/en/view-restrictions.html Ветке 5.1 уже 13 лет. Очень хороший совет. Если б это был мой сервер, то я бы вообще ушел от мускула подальше, потому что УГ. Спасибо Алексу Устинову - он навел меня на решение. Оно, конечно, имеет недостатки (сбор и выборка данных разными запросами, которые не в одной транзакции), с которыми, впрочем, можно смириться ибо они не слишком критичны. В итоге все уже сделано и работает :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 21:54 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
MsGuns, miksoft , Akina посоветуют больше и лучше чем я временные таблицы ( если будут использоваться в SP) - создаются в своей сессии и не пересекаются с "другими". В бытность 5.1 часто использовались. Да и сейчас самый лучший метод ускорить запрос. если покопать здесь в поиске - то можно найти кучу информации тех времен когда 5.1 была в продакшене. и я в то время только начинал знакомиться с MySQL ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 22:34 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
Alex_Ustinov MsGuns, miksoft , Akina посоветуют больше и лучше чем я временные таблицы ( если будут использоваться в SP) - создаются в своей сессии и не пересекаются с "другими". В бытность 5.1 часто использовались. Да и сейчас самый лучший метод ускорить запрос. если покопать здесь в поиске - то можно найти кучу информации тех времен когда 5.1 была в продакшене. и я в то время только начинал знакомиться с MySQL Насколько я знаю, временные таблицы существуют только в контексте транзакции. Когда она завершается с любым исходом, эти таблицы автоматически уничтожаются. Т.к. в моем-Вашем решении собственно запрос состоит из двух шагов (sp + select), т.е. двух транзакций, то Select будет пытаться выбирать из несуществующей таблицы. Поэтому sp создает обычную, а не временную, таблицу. Разве не так ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 22:59 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
MsGuns временные таблицы существуют только в контексте транзакции В других СУБД бывает иначе, но у MySQL соответствующих опций не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 00:01 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
MsGuns, авторЗЫ. В MS SQL/Interbase/Oracle/PostgeSQL эта проблема легко решается через UDF. пример покажите, по-моему мы ходим вокруг да около... если речь о параметризированном запросе - то см. CONCAT-PREPARE-EXECUTE ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 00:13 |
|
Как положить в метаданные сервера сложный запрос на выборку
|
|||
---|---|---|---|
#18+
Ветка плавно перетекает в тихий холивар :) В MySQL опыта почти нет никакого, а какой был, весь позабыт. Возникла проблема, связанная именно с этим типом сервера. Мне помогли ее решить. Не идеально, но на данный момент тех, кто меня об этом попросил, вполне устроило. Они даже проставились :) Всем спасибо, тема исчерпана. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 00:34 |
|
|
start [/forum/topic.php?fid=47&msg=40131276&tid=1827795]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 283ms |
total: | 417ms |
0 / 0 |