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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как изменить порядак сортировки?

Сообщения:  [1-9] 

 
 автор: Волки   (16.03.2009 в 18:26)   письмо автору
 
   для: Владимир55   (15.03.2009 в 13:30)
 

как вариант можно попробовать:
SELECT * FROM bot_korn ORDER BY CAST( SUBSTRING_INDEX(str,'.',1) as UNSIGNED)

  Ответить  
 
 автор: Владимир55   (16.03.2009 в 18:24)   письмо автору
 
   для: cheops   (16.03.2009 в 16:30)
 

Спасибо, теперь всё понятно!

А то я никак не мог принять того факта, что столь интеллектуальный язык не имеет такого весьма нужного свойства...

  Ответить  
 
 автор: cheops   (16.03.2009 в 16:30)   письмо автору
 
   для: Владимир55   (16.03.2009 в 14:41)
 

Такая функция имеется в PHP, в СУБД строки сортируются как строки, а не как числа.

  Ответить  
 
 автор: Loki   (16.03.2009 в 16:00)   письмо автору
 
   для: Владимир55   (16.03.2009 в 14:41)
 

Попробуйте поискать информацию по "natural ordering". Если не получится, то придется сортировать на php

  Ответить  
 
 автор: Владимир55   (16.03.2009 в 14:41)   письмо автору
 
   для: Loki   (16.03.2009 в 14:08)
 

Вы хотите сказать, что в базе не предусмотрен механизм сортировки по "человеческим" законам? И что единственный выход - написание соответствующего кода на рнр?

  Ответить  
 
 автор: Loki   (16.03.2009 в 14:08)   письмо автору
 
   для: Владимир55   (16.03.2009 в 13:02)
 

так и сортируется. В соответствии с правилами сортировки строк... то есть посимвольно.

  Ответить  
 
 автор: Владимир55   (16.03.2009 в 13:02)   письмо автору
 
   для: Root   (16.03.2009 в 12:05)
 

Я с этой конструкции и начал, но это совершенно не то, что нужно, ибо здесь получается так:
0.htm
1.htm
10.htm
11.htm
2.htm

А требуется сортировка в человеческом стиле: числа по нарастанию, затем буквы по алфавиту.

  Ответить  
 
 автор: Root   (16.03.2009 в 12:05)   письмо автору
 
   для: Владимир55   (15.03.2009 в 13:30)
 

SELECT * FROM bot_korn ORDER BY `str`;

  Ответить  
 
 автор: Владимир55   (15.03.2009 в 13:30)   письмо автору
 
 

В таблице выводятся имена файлов страниц с помощью запроса
mysql_query("SELECT * FROM bot_korn ORDER BY CAST(str as UNSIGNED) ");

Вывод имеет такой вид:
0.htm (первый знак ноль)
index.htm
li.htm
1.htm
2.htm
3.htm


А желательно иметь традиционную сортировку - прежде числа по возрастанию, а за ними слова по алфавиту. Например:
0.htm (первый знак ноль)
1.htm
2.htm
3.htm
index.htm
li.htm

Такой запрос возможен?

  Ответить  

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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