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

Форум MySQL

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

 

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

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

тема: Сортировак исходя из значимых записей двух столбцов
 
 автор: Владимир55   (26.02.2009 в 12:00)   письмо автору
 
 

Таблица имеет три столбца - id, clik и prod. При этом требуется такая сортировка:
- сортируем по столбцу prod в порядке убывания, используя лишь отличные от нуля значения;
- оставшиеся строки сортируем в порядке убывания по столбцу clik.

Я вот думаю: можно разделить таблицу на две части с учетом критерия значимости записей в этих столбцах, затем отсортировать их по отдельности и перенести в новую таблицу (в очищенную таблицу).

А может быть это возможно осуществить проще, одним запросом?

  Ответить  
 
 автор: а-я   (26.02.2009 в 12:26)   письмо автору
 
   для: Владимир55   (26.02.2009 в 12:00)
 

ничего не понял..

может так

SELECT
 *
FROM
 `tbl`
WHERE
 `prod` > 0
ORDER BY 
 `prod` DESC,
 `clik` DESC



что значит "оставшиеся строки"? те которые равны 0 что лэ?)

  Ответить  
 
 автор: Владимир55   (26.02.2009 в 12:34)   письмо автору
 
   для: а-я   (26.02.2009 в 12:26)
 

"ничего не понял.."

Попробую на примере.

Пусть содержимое таблицы такое (столбцы слева направо id, clik и prod через разделитель "-" для наглядности)
1 - 55 - 15
2 - 45 - 22
3 - 27 - 0
4 - 22 - 0
5 - 47 - 0

А надо, что бы получилось после сортировки (привожу только столбцы clik и prod):
45 - 22
55 - 15
47 - 0
27 - 0
22 - 0

  Ответить  
 
 автор: а-я   (26.02.2009 в 12:37)   письмо автору
 
   для: Владимир55   (26.02.2009 в 12:34)
 

может так тогда

SELECT
 *
FROM
 `tbl` 
ORDER BY 
 (`prod` <> 0) DESC,
 `prod` DESC,
 `clik` DESC


хотя из примера можно и просто так

SELECT
 *
FROM
 `tbl` 
ORDER BY 
 `prod` DESC,
 `clik` DESC


0 меньше, он и будет внизу

  Ответить  
 
 автор: Владимир55   (26.02.2009 в 12:42)   письмо автору
 
   для: а-я   (26.02.2009 в 12:37)
 

Сейчас попробую.

А попутно хочу спросить.
Никак не могу понять, почему `tbl` , `prod` и `clik` в кавычках?
В книге я на сей счет ничего не нашел, а в примерах на форуме встречаются и закавыченные записи, и обычные.

Есть на сей счет какое-то правило?

  Ответить  
 
 автор: а-я   (26.02.2009 в 12:49)   письмо автору
 
   для: Владимир55   (26.02.2009 в 12:42)
 

=) попробуйте поработать в таблице с полями
например from, select, where

  Ответить  
 
 автор: mihdan   (26.02.2009 в 14:12)   письмо автору
 
   для: Владимир55   (26.02.2009 в 12:42)
 

Чтобы избежать конфликтов mysql при работе с названиями столбцов, если они, вдруг, совпадут с зарезервированными словами

  Ответить  
 
 автор: Владимир55   (26.02.2009 в 14:28)   письмо автору
 
   для: mihdan   (26.02.2009 в 14:12)
 

То есть, заключение в кавычки не является обязательным?

И в случаях, когда имена являются заведомо уникальными, в частности содержащие "_", этого можно не делать?

  Ответить  
 
 автор: Trianon   (26.02.2009 в 14:34)   письмо автору
 
   для: Владимир55   (26.02.2009 в 14:28)
 

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

Если же запрос динамически составляется скриптом - это вообще обычная практика.

  Ответить  
 
 автор: а-я   (26.02.2009 в 14:39)   письмо автору
 
   для: Владимир55   (26.02.2009 в 14:28)
 

>И в случаях, когда имена являются заведомо уникальными, в частности содержащие "_", этого можно не делать?

это седня они уникальны, а завтра?

Вас чем то пугают апострофы?

  Ответить  
 
 автор: Владимир55   (26.02.2009 в 14:46)   письмо автору
 
   для: а-я   (26.02.2009 в 14:39)
 

"Вас чем то пугают апострофы?"

Ничуть. Просто стремлюсь к единообразию.

  Ответить  
Rambler's Top100
вверх

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