Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка по столбцу 
:(
    Опции темы
Beast45
Дата 20.10.2009, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Доброго времени суток!

Есть дата в формате ДД.ММ.ГГГГ.
В базе хранится эта дата в поле с типом VARCHAR.

Допустим, есть таблица в базе данных (table) с полями id,pole,datа.
Сортирую так:
Код

$result = mysql_query ("SELECT * FROM table WHERE pole='$znachenie' ORDER BY data", $baza);


но сортировка проискодит только по дню:
10.12.2009
11.08.2008
17.12.2014
31.05.2009

Подскажите пожалуйста, как провести правильную сортировку. Спасибо!
PM MAIL   Вверх
lelik133
Дата 20.10.2009, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 3
Всего: 14



хранить даты в формате предназначенном для дат, а не в varchar
PM ICQ   Вверх
Beast45
Дата 20.10.2009, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Был уверен, что первый ответ будит про тип. А именно из archar можно это сделать?
PM MAIL   Вверх
skyboy
Дата 20.10.2009, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(Beast45 @  20.10.2009,  08:45 Найти цитируемый пост)
но сортировка проискодит только по дню:
10.12.2009
11.08.2008
17.12.2014
31.05.2009

сначала по группе символов, которые ты сам назвал днем. Вот если бы были одинаковые "дни"(в кавычках, ибо при типе varchar СУБД сугубо фиолетово, что у тебя каждый символ строки обозначает - он работает со строкой целиком) у двух записей, то была бы сортировка уже по "месяцу".
Когда хранишь даты в строках, то нормальная символьная сортировка подойдет только в случае формата ГГГГ.ММ.ДД - в таком случае даже при символьном сравнении/сортировке "2009.10.05" будет в выборке идти раньше, чем "2005.12.27"
Потому в твоем случае надо вычленять куски и сортировать по этим кускам: 
Код

ORDER BY right(data, 4),substr(data,4,2),left(data,2)

но такой запрос не использует индексы. и потому тормозить будет жутко.
потому вариант со сменой типа поля имеет под собой веские основания.
PM MAIL   Вверх
Ипатьев
Дата 20.10.2009, 10:26 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



Цитата(Beast45 @  20.10.2009,  09:57 Найти цитируемый пост)
Был уверен, что первый ответ будит про тип

Анекдот советских времен:
Посылают студенты сокурсника-негра за пивом. Он отнекивается, говорит, что русского языка не знает. Они говорят, что напишут ему все на бумажке. Ну ладно. Подходит к киоску, читает: 
- Пифо ест? 
- Нету! - отвечает продавцица
Читает дальше: "Так и знал!"
smile 
PM MAIL   Вверх
youri
Дата 21.10.2009, 01:44 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Beast45, 
Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум - из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится - тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите - лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ!!!
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю!!! А от вас нормального ответа недождёшся!!!
Прохожий: Самое крепкое дерево - дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность: 
Новичок: Спасибо, братан! То что нужно!!!
http://phpfaq.ru/humor

p.s. ты хоть скажи, зачем тебе varchar?
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0481 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.