powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
16 сообщений из 16, страница 1 из 1
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39002642
antonenkoab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Имею задачку, которую я смог решить тремя отдельными запросами к базе данных, но вот, не могу понять, как то же самое сделать одним запросом или выборкой. Приведу пример своего решения по пунктам:
1)
SELECT iid, iname, kw, itext1
FROM products
WHERE iname LIKE 'search %'

2)
SELECT iid, iname, kw, itext1
FROM products
WHERE (kw LIKE 'search%') AND (iname NOT LIKE 'search %')

3)
SELECT iid, iname, kw, itext1
FROM products
WHERE (itext1 LIKE 'search %') AND ((iname NOT LIKE 'search %') AND (kw NOT LIKE 'search %'))

Таким образом я получил 3 выборки, которые дают мне возможность получить результат в определенном порядке

Сначала 1) я получаю данные с столбца "iname", далее 2) получаю строки с столбца "kw", но уже не повторяя полученные строки с колонки "iname" и далее 3) получаю строки совпадающие по колонке "itext1", но уже не повторяя полученные строки по совпадениям в колонках "iname" и "kw".

Но вот беда. Мне нужно теперь это все объединить в один запрос, сохранив при этом порядок выборки по колонкам и условиям, то есть важна последовательность.

Подскажите, пожалуйста.
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39002657
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antonenkoabважна последовательностьпри отсутствии ORDER BY и даже GROUP BY... ага...
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39002664
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UNION ALL?
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39002668
antonenkoab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akinaantonenkoabважна последовательностьпри отсутствии ORDER BY и даже GROUP BY... ага...

Дело в том, что сортировка ORDER BY не нужна,
а про GROUP BY я не знаю как в этом случае может помочь
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39002689
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antonenkoab , поскольку нет сортировки, записи в каждой выборке будут отдаваться в произвольном порядке - в т.ч. вполне может быть, что сегодня так, а завтра иначе. Так что какой может быть разговор о порядке, а тем более о его важности?

Что же до группировки - она (если не задано иначе) выполняет также и сортировку результата. Маны читайте...

PS. Я уже понимаю, что формулировать задачу у Вас получается, прямо скажем... тогда хоть примером покажите, чего надо.
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39002690
antonenkoab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SharuPoNemnoguUNION ALL?
Да, действительно, вроде помогло. Очень просто)). Спасибо.
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39002704
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antonenkoabвроде помоглоОбъединить - да. А то, что они будут идти всегда в таком именно порядке - не гарантировано ничем.
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39002714
antonenkoab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Спасибо. Просто нам не нужна четкая последовательность в результатах поиска. Последовательность может меняться - это допустимо, но в моем случае важно что-бы сначала были показаны результаты по первой колонке, потом сразу следом по второй и так далее. Я применил UNION ALL и вижу что получается желаемый результат. Спасибо
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39002736
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы ГАРАНТИРОВАТЬ, что так будет всегда, что записи не перемешаются, нужно принять соотв. меры - в т.ч. и ввести сортировку. Например, по такому шаблону:

Код: sql
1.
2.
3.
4.
5.
6.
(SELECT 1 AS querynum, остальные поля FROM остальной текст запроса 1)
UNION ALL
(SELECT 2, остальные поля FROM остальной текст запроса 2)
UNION ALL
(SELECT 3, остальные поля FROM остальной текст запроса 3)
ORDER BY 1
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39002748
antonenkoab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Это интересно. Я подумаю. Мне нужно почитать документацию об этом. Спасибо
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39002757
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antonenkoabМне нужно почитать документацию об этом.
http://dev.mysql.com/doc/refman/5.6/en/union.html
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39002921
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antonenkoab,

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT iid, iname, kw, itext1
FROM products
WHERE (itext1 LIKE 'search %') OR (iname LIKE 'search %') OR (kw LIKE 'search %')
ORDER BY 
  (iname NOT LIKE 'search %') ,
  (kw NOT LIKE 'search %'),
  iid
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39002924
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя весьма вероятно, что UNION будут обработаны быстрее...
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39003780
antonenkoab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Извините, а почему в этом запросе
Код: sql
1.
2.
3.
4.
5.
6.
(SELECT 1 AS querynum, остальные поля FROM остальной текст запроса 1)
UNION ALL
(SELECT 2, остальные поля FROM остальной текст запроса 2)
UNION ALL
(SELECT 3, остальные поля FROM остальной текст запроса 3)
ORDER BY 1


ORDER BY 1, а не ORDER BY querynum?
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39003895
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какая разница, указывать имя или порядковый номер? номер - короче. Да и при правке запроса имя меняют реже, чем порядок полей.
...
Рейтинг: 0 / 0
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
    #39003918
antonenkoab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Ясно, спасибо.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]