Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Что делать с сортировкой UNION

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
VoVladey
Отправлено: 21 Мая, 2013 - 10:56:48
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Первый раз столкнулся с необходимостью UNION.

Нужно выбрать сначала все значения где А=1 и В=0 с сортировкой по имени, и затем где А=1 и В=1 и тоже с сортировкой по имени.


пишу
(SELECT * FROM table WHERE a=1 AND B=0 ORDER BY name)
UNION
(SELECT * FROM table WHERE a=1 AND B=1 ORDER BY name);

сортировать никак нехотит.

Где косяк?
 
 Top
imya
Отправлено: 21 Мая, 2013 - 11:14:10
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




UNION ALL?


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
LIME
Отправлено: 21 Мая, 2013 - 11:52:45
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM TABLE WHERE (a=1 AND B=0) OR (a=1 AND B=1) ORDER BY name

а если UNION то
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM TABLE WHERE a=1 AND B=0
  2. UNION
  3. SELECT * FROM TABLE WHERE a=1 AND B=1 ORDER BY name
сортировка происходит уже после выборки
imya давно мы так сортируем?
(Добавление)
вернее
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM TABLE WHERE a=1 AND (B=0 OR B=1) ORDER BY name
 
 Top
imya
Отправлено: 21 Мая, 2013 - 12:40:08
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




LIME пишет:
imya давно мы так сортируем?

Я UNION не пользуюсь вообще Подмигивание


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
VoVladey
Отправлено: 22 Мая, 2013 - 10:40:30
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




LIME

Задача в том чтоб сначала по имени встали все B=0, а следом шли все B=1 тоже по порядку,
все вышеперечисленные сортируют просто по имени...
Пример:
Антон | B=0
Артем | B=0
Борис | B=0

Алиса | B=1
Максим | B=1
Петр | B=1



Я пока решил сделать выборку двумя запросами.

Но может есть какой то вариант сделать проще???
 
 Top
LIME
Отправлено: 22 Мая, 2013 - 11:42:49
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM TABLE WHERE a=1 AND (B=0 OR B=1) ORDER BY B,name
 
 Top
VoVladey
Отправлено: 22 Мая, 2013 - 17:46:24
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




LIME Спасибо.

Вот как хреново когда банальных вещей не знаешь)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB