|
|
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Имею задачку, которую я смог решить тремя отдельными запросами к базе данных, но вот, не могу понять, как то же самое сделать одним запросом или выборкой. Приведу пример своего решения по пунктам: 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". Но вот беда. Мне нужно теперь это все объединить в один запрос, сохранив при этом порядок выборки по колонкам и условиям, то есть важна последовательность. Подскажите, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 17:08:59 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
antonenkoabважна последовательностьпри отсутствии ORDER BY и даже GROUP BY... ага... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 17:16:13 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
UNION ALL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 17:22:44 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
Akinaantonenkoabважна последовательностьпри отсутствии ORDER BY и даже GROUP BY... ага... Дело в том, что сортировка ORDER BY не нужна, а про GROUP BY я не знаю как в этом случае может помочь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 17:25:44 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
antonenkoab , поскольку нет сортировки, записи в каждой выборке будут отдаваться в произвольном порядке - в т.ч. вполне может быть, что сегодня так, а завтра иначе. Так что какой может быть разговор о порядке, а тем более о его важности? Что же до группировки - она (если не задано иначе) выполняет также и сортировку результата. Маны читайте... PS. Я уже понимаю, что формулировать задачу у Вас получается, прямо скажем... тогда хоть примером покажите, чего надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 17:46:22 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
SharuPoNemnoguUNION ALL? Да, действительно, вроде помогло. Очень просто)). Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 17:46:35 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
antonenkoabвроде помоглоОбъединить - да. А то, что они будут идти всегда в таком именно порядке - не гарантировано ничем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 17:51:22 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
Akina, Спасибо. Просто нам не нужна четкая последовательность в результатах поиска. Последовательность может меняться - это допустимо, но в моем случае важно что-бы сначала были показаны результаты по первой колонке, потом сразу следом по второй и так далее. Я применил UNION ALL и вижу что получается желаемый результат. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 17:54:38 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
Чтобы ГАРАНТИРОВАТЬ, что так будет всегда, что записи не перемешаются, нужно принять соотв. меры - в т.ч. и ввести сортировку. Например, по такому шаблону: Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 18:03:33 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
Akina, Это интересно. Я подумаю. Мне нужно почитать документацию об этом. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 18:10:03 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
antonenkoabМне нужно почитать документацию об этом. http://dev.mysql.com/doc/refman/5.6/en/union.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 18:15:42 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
antonenkoab, Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 22:26:55 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
Хотя весьма вероятно, что UNION будут обработаны быстрее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 22:29:07 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
Akina, Извините, а почему в этом запросе Код: sql 1. 2. 3. 4. 5. 6. ORDER BY 1, а не ORDER BY querynum? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 17:16:20 |
|
||
|
Как объединить несколько выборок из БД в одну и сохранить порядок выборки по колонкам
|
|||
|---|---|---|---|
|
#18+
А какая разница, указывать имя или порядковый номер? номер - короче. Да и при правке запроса имя меняют реже, чем порядок полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 18:34:24 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39002757&tid=1832965]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 308ms |

| 0 / 0 |
