Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как упорядочить
 
 автор: kest131   (12.09.2005 в 21:20)   письмо автору
 
 

Допустим я пишу:


select id,type,bal from test order by bal desc;


На выходе:

id | type | bal

3 | два | 9
5| один | 8
1 | два | 7
6 | три | 6
5 | два | 5
4 | три | 4
2 | один | 3


Как построить запрос что-бы ваходило:



id | type | bal

3 | два | 9
5| один | 8
6 | три | 6



Тоесть что-бы выводилась только одна строка с параметром type

   
 
 автор: codexomega   (12.09.2005 в 21:28)   письмо автору
 
   для: kest131   (12.09.2005 в 21:20)
 

Надо использовать DISTINCT.


select id, distinct type,bal from test order by bal desc;

   
 
 автор: kest131   (13.09.2005 в 18:38)   письмо автору
 
   для: codexomega   (12.09.2005 в 21:28)
 

Не работает

Работает только так:


select  distinct type,bal,id from test order by bal desc; 


Но выводит не то что нужно.

   
 
 автор: Loki   (13.09.2005 в 22:19)   письмо автору
 
   для: kest131   (13.09.2005 в 18:38)
 

Попробуйте так:

select  distinct(type) as type,bal,id from test order by bal desc;

   
 
 автор: kest131   (14.09.2005 в 10:24)   письмо автору
 
   для: Loki   (13.09.2005 в 22:19)
 

Выводит все равно не правильно

Значения в колонке type порторяются.

   
 
 автор: Artemy   (12.09.2005 в 21:53)   письмо автору
 
   для: kest131   (12.09.2005 в 21:20)
 

Можно воспользоваться следующей конструкцией:
<?
$query 
mysql_query("SELECT id,type,bal FROM test GROUP BY type");
?>

   
 
 автор: kest131   (13.09.2005 в 18:40)   письмо автору
 
   для: Artemy   (12.09.2005 в 21:53)
 

Нужно что-бы производилась сортировка столбца bal до функции GROUP BY type

   
 
 автор: napTu3aH   (14.09.2005 в 19:05)   письмо автору
 
   для: kest131   (12.09.2005 в 21:20)
 

Попробуйте этот запрос

Select  type,bal,id from test group by type order by bal desc

   
 
 автор: kest131   (14.09.2005 в 19:40)   письмо автору
 
   для: napTu3aH   (14.09.2005 в 19:05)
 

Такой скрипт работает но ваводит не то.

Он сначала отбирает данные из колонки type а потом их сортирует (order by bal desc ).

Надо наоборот :

Что-бы сначала он сортировал (order by bal desc ) а потом отбирал данные из колонки type

   
 
 автор: Денис   (14.09.2005 в 20:36)   письмо автору
 
   для: kest131   (14.09.2005 в 19:40)
 

Select type,bal,id from test order by type group by bal desc

   
 
 автор: napTu3aH   (14.09.2005 в 20:43)   письмо автору
 
   для: Денис   (14.09.2005 в 20:36)
 

Это конечно бы сработало но синтаксис SQL не позволяет делать сначала order by
а потом group by только наоборот...

   
 
 автор: Денис   (14.09.2005 в 20:57)   письмо автору
 
   для: kest131   (14.09.2005 в 19:40)
 

вам нужно, чтобы данные из колонки type и bal были неповторяющимися? может быть, попробовать в два этапа: сначала выбрать из одной колонки с distinct, а потом из другой?

   
 
 автор: kest131   (14.09.2005 в 21:10)   письмо автору
 
   для: Денис   (14.09.2005 в 20:57)
 

Нужно что-бы неповторялись данные только из колонки type.
В два этапа?Напиши как (если это даст результат)

   
 
 автор: Денис   (15.09.2005 в 12:26)   письмо автору
 
   для: kest131   (14.09.2005 в 21:10)
 

Предложение GROUP BY позволяет объединять поля в запросе.
Предложение ORDER BY позволяет упорядочивать выбираемые записи. При использовании совместно с предложением ключевого слова ASC можно определить возрастающий порядок, а используя DESC, определяется убывающий порядок.

SELECT * FROM Orders ORDER BY Name ASC;

Также можно упорядочивать записи по нескольким полям. Сначала записи упорядочиваются по первому полю, если в нём есть записи, имеющие одинаковые значения, то они упорядочиваются по следующему указанному в предложении ORDER BY полю и т.д. Имена полей пишутся через запятую [,].

SELECT * FROM Orders ORDER BY Name ASC, Email ASC;


Попоробуйте вот такой запрос:
SELECT id, type, bal FROM test ORDER BY type DESC, bal DESC

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования