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

Форум MySQL

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

 

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

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

тема: Перестает работать ORDER BY по определенному полю таблицы
 
 автор: Rustamich   (04.01.2014 в 03:55)   письмо автору
 
 

Доброго дня!

Возникла странная проблема. Создаю таблицу:

CREATE TABLE IF NOT EXISTS `is_item` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `category_id` int(11) DEFAULT NULL,
  `title` varchar(255) DEFAULT NULL,
  `make` varchar(100) DEFAULT NULL,
  `description` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


Добавляю значения:

INSERT INTO `is_item` (`id`, `category_id`, `title`, `make`, `description`) VALUES
(1, 11, 'Блок газосиликатный Simpras 200x300x600', 'Литва', 'Блок для строительства внутренних и внешних стен.'),
(2, 11, 'Блок газосиликатный Simpras 100x200x600', 'Литва', 'Перегородочный блок'),
(3, 11, 'Блок газосиликатный Solbet 100x240x590', 'Польша', 'Перегородочный блок'),
(4, 11, 'Блок газосиликатный 100x299x615', 'Беларусь', 'Перегородочный блок'),
(5, 11, 'Блок газосиликатный Simpras 200x400x600', 'Литва', 'Блок для строительства внутренних и внешних стен'),
(6, 11, 'Блок газосиликатный Solbet 200x300x590', 'Польша', 'Блок предназначен для строительства несущих и ограждающих стен'),
(7, 11, 'Блок газосиликатный Solbet 200x400x590', 'Польша', 'Блок предназначен для строительства несущих и перегородочных стен');


По всем полям кроме title сортировка ORDER BY работает на ура. А по полю title не желает. В чем причина, подскажите, пожалуйста.

  Ответить  
 
 автор: cheops   (04.01.2014 в 23:13)   письмо автору
 
   для: Rustamich   (04.01.2014 в 03:55)
 

А что получается в результате сортировки и какой порядок вы ожидаете?

  Ответить  
 
 автор: Rustamich   (05.01.2014 в 01:45)   письмо автору
 
   для: cheops   (04.01.2014 в 23:13)
 

В результатах сортировки никакого эффекта вообще, как добавлено, так и остается. Хочу добиться сортировки по алфавиту: ORDER BY `title` ASC. По остальным полям сортирует без проблем. Как я выяснил проблема в повторяющимся словосочетании "Блок газосиликатный", видимо MySQL не желает сортировать длинную одинаковую последовательность символов. Если ввожу Блок А и Блок Б, сортируется легко. Еще понял что дело в настройках MySQL на локальном движке OpenServer, так как поставил для проверки Denwer - все сортируется в лет. Какие могут быть настройки для MySQL, чтобы решить данную проблему на OpenServer'е?

  Ответить  
 
 автор: Rustamich   (05.01.2014 в 02:02)   письмо автору
 
   для: cheops   (04.01.2014 в 23:13)
 

РЕШЕНИЕ НАЙДЕНО!!!

В файле настроек MySQL на OpenServer выставлен параметр max_sort_length = 20, не ясно с каких соображений автора. В общем просто закомментировал его #max_sort_length = 20 и сортировка начала работать как полагается!!!

  Ответить  
 
 автор: confirm   (05.01.2014 в 08:55)   письмо автору
 
   для: Rustamich   (05.01.2014 в 02:02)
 

http://www.mysql.ru/docs/tnastroyka.html

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

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