Сортировка по двум полям

Мизантроп777

Новичок
Здравствуйте.
Подскажите пожалуйста, как в MySQL отсортировать данные в таблице одновременно по двум полям?
То есть у меня в таблице есть три поля ID, age и name
Нужна чтобы сортировка шла по возрасту и одновременно по имени, а именно нужно чтобы вверху пользователи показывались с самым маленьким возрастом и именем начинающемся на букву "а" то есть по алфавиту
 

Фанат

oncle terrible
Команда форума
поля в ORDER BY перечисляются через запятую.
если сортировка не устроит, то попробуй описать свои желания более точно
 

Мизантроп777

Новичок
поля в ORDER BY перечисляются через запятую.
если сортировка не устроит, то попробуй описать свои желания более точно
Я хочу чтобы сортировка шла одновременно по 2 полям, первое поле числовое второе поле из латинских букв.
Имеется следующая таблица:
num | name
1 | Alex
5 | Boris
7 | Dima

То есть если к примеру цифры и имена разбросаны по таблицы, то запрос должен отсортировать данные наподобие того примера что я выше описал, ну конечно же учитывать то что номер и имя не могут сравниваться со значениями из других полей.
 

Фанат

oncle terrible
Команда форума
Дурацкий какой-то пример.
приведи пример двойной сортировки.
 

Мизантроп777

Новичок
Если на примере, то имею следующий код
SELECT * FROM `table` ORDER BY `num`, `name`
Такой способ сортировки не то что мне нужно, мне нужно чтобы сортировка одновременно была по полю num и name а она производится не совсем так.
 

Фанат

oncle terrible
Команда форума
сортировки "одновременно" не существует в природе.
сортировать можно либо по одному, либо по другому полю.

"на примере" означает пример данных до сортировки и после. НАГЛЯДНО показывающий принцип, по которому было отсортировано.

тот пример, который ты привёл выше, выглядит так, как будто все namе оторвали от своих строк, и присобачили к цифрам от других. Если ты собрался делать именно так, то предупреждаю - не стоит этого делать. Ты потом очень сильно пожалеешь.
 

HEm

Сетевой бобер
Покажи ПРИМЕР
т.е. таблицу с 10 записями и как они должны выстраиваться после сортировки
 

PavelDAS

Новичок
Поднимем древнюю тему :)
Есть таблица
ID
NAME
NAME_ALT
1Lamentation SwordAkuma: Demon Spawn
2Incidente em VarginhaAlien Anarchy
3Simon the Sorcerer: Chaos ist das halbe LebenSimon the Sorcerer 4: Chaos Happens
4Buzzing CarsWild Wheels
5Alarm für Cobra 11: Highway NightsCrash Time III
6Resident Evil 3: NemesisBiohazard 3: Last Escape
7Beach LifeVirtual Resort: Spring Break
8Die VölkerAlien Nations

Мне надо выбрать игры начинающиеся с A в столбцах NAME или NAME_ALT и отсортированные по имени.

По итогу надо так:
Lamentation Sword (Akuma: Demon Spawn)
Alarm für Cobra 11: Highway Nights (Crash Time III)
Incidente em Varginha (Alien Anarchy)
Die Völker (Alien Nations)

При варианте
SELECT * FROM `TBL` WHERE `NAME` LIKE 'A%' OR `NAME_ALT` LIKE 'A%' ORDER BY `NAME` , `NAME_ALT`
Названия из второго столбца будут в конце...
 

Мизантроп777

Новичок
Поднимем древнюю тему :)
Есть таблица
ID
NAME
NAME_ALT
1Lamentation SwordAkuma: Demon Spawn
2Incidente em VarginhaAlien Anarchy
3Simon the Sorcerer: Chaos ist das halbe LebenSimon the Sorcerer 4: Chaos Happens
4Buzzing CarsWild Wheels
5Alarm für Cobra 11: Highway NightsCrash Time III
6Resident Evil 3: NemesisBiohazard 3: Last Escape
7Beach LifeVirtual Resort: Spring Break
8Die VölkerAlien Nations

Мне надо выбрать игры начинающиеся с A в столбцах NAME или NAME_ALT и отсортированные по имени.

По итогу надо так:
Lamentation Sword (Akuma: Demon Spawn)
Alarm für Cobra 11: Highway Nights (Crash Time III)
Incidente em Varginha (Alien Anarchy)
Die Völker (Alien Nations)

При варианте
SELECT * FROM `TBL` WHERE `NAME` LIKE 'A%' OR `NAME_ALT` LIKE 'A%' ORDER BY `NAME` , `NAME_ALT`
Названия из второго столбца будут в конце...
Ну ты и скелета откопал. Не спится)
 

AnrDaemon

Продвинутый новичок
SQL:
WITH `d` AS (
    SELECT `ID`, `NAME` FROM `table`
    UNION SELECT `ID`, `NAME_ALT` AS `NAME` FROM `table`
)
SELECT t.* FROM d INNER JOIN `table` t ON t.ID = d.ID
WHERE d.`NAME` LIKE 'A%'
ORDER BY d.`NAME`
GROUP BY t.ID по вкусу.
 
Сверху