Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хитрая сортировка. Как? / 8 сообщений из 8, страница 1 из 1
13.01.2006, 08:24:34
    #33480385
DiverTomsk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрая сортировка. Как?
Должно быть всё просто, но плохо знаю язык запросов:( Помогите:
Есть таблица с полями: ФИО, приоритет.
У некоторых людей одинаковый приоритет.
Например:
Петров И.А. 5
Зимин В.В. 6
Иванов А.А. 10
Пупкин В.В. 10
Козлов С.С. 12
Нужно сделать так чтобы сначала сортировался список по приоритету (поле приоритет), а потом у тех у кого приоритет одинаков - по алфавиту (поле ФИО)
Т.е. select * FROM table ORDER BY проритет - это понятно. А как потом?:(
...
Рейтинг: 0 / 0
13.01.2006, 09:36:26
    #33480476
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрая сортировка. Как?
DiverTomsk... Т.е. select * FROM table ORDER BY проритет - это понятно. А как потом?:(
Код: plaintext
SELECT * FROM table ORDER BY приоритет, ФИО
?
http://dev.mysql.com/doc/refman/4.1/en/select.html
...
Рейтинг: 0 / 0
13.01.2006, 10:40:46
    #33480648
DiverTomsk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрая сортировка. Как?
Спасибо! Помогло, но не совсем. Криво сортирует:
Баклин Валерий Сергеевич
Богданов Евгений Петрович
Големгрейн Виктор Владимирович
Верхотуров Анатолий Иванович
Ройз Шмиль Симхович
Игнатович Виктор Михайлович
Кляйн Роберт Яковлевич
Копылов Юрий Васильевич
Попов Виталий Иванович
Муравлева Ольга Олеговна
Сипайлова Надежда Юрьевна
Стукач Владимир Степанович
Убиенных Борис Иннокентьевич
Жадан Валерий Афонасьевич
Цукублин Анатолий Борисович
Чесалин Анатолий Дмитриевич
----
Может это странности кодировок?
----
P.S.:
MySQL - 4.1.10.
Таблица:
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

--
-- Table structure for table `teaching_staff`
--

DROP TABLE IF EXISTS `teaching_staff`;
CREATE TABLE `teaching_staff` (
`department` varchar(50) character set latin1 NOT NULL default '',
`name` varchar(200) character set latin1 NOT NULL default '',
`established_post` varchar(255) character set latin1 default NULL,
`office_tel` varchar(50) character set latin1 default NULL,
`fax` varchar(200) character set latin1 default NULL,
`priority` int(10) unsigned NOT NULL default '0',
`id` int(11) NOT NULL auto_increment,
UNIQUE KEY `id` (`id`),
FULLTEXT KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COMMENT='InnoDB free: 11264 kB';

ТУТ ИДУТ ДАННЫЕ

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
...
Рейтинг: 0 / 0
13.01.2006, 10:50:01
    #33480687
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрая сортировка. Как?
>... DEFAULT CHARSET=cp1251 COMMENT='InnoDB free: 11264 kB';
После создания БД в момент выгрузки информации в нее вы уверены, что на клиенте и сервер одна и та же кодировка?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
13.01.2006, 12:09:07
    #33481021
DiverTomsk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрая сортировка. Как?
Не понял?
База используется для сайта. Т.е. Апач + ПХП + МайСкьюэль:) Как я понимаю сортировка косячится из-за того что Дефаулт чарсет cp1251, а поля в таблице прописаны как latin1?
...
Рейтинг: 0 / 0
13.01.2006, 13:04:57
    #33481296
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрая сортировка. Как?
>Не понял?
Объясняю. поправьте, если я не прав.
1. Вы подключаетесь к БД. Очень часто подключение идет с кодировкой latin1.
2. Вы создаете таблицу CREATE TABLE `teaching_staff` (.... DEFAULT CHARSET=cp1251
3. В этом же соединении вы заливаете содержимое в таблицу из п.2.

Обратите внимание, что таблица у вас просит cp1251, а вы ей отдаете latin1.

попробуйте задать SET NAMES cp1251 , перед тем, как заливать данные в таблицу.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
13.01.2006, 14:38:33
    #33481632
JASterus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрая сортировка. Как?
попробуй
Код: plaintext
ORDER BINARY приоритет, ФИО
...
Рейтинг: 0 / 0
13.01.2006, 14:41:27
    #33481639
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хитрая сортировка. Как?
>ORDER BINARY приоритет, ФИО
Это - костыль.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хитрая сортировка. Как? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]