Упорядочение списка по фамилии - PullRequest
1 голос
/ 19 мая 2019

Если у вас был список имен в таблице с именем 'directory', как показано ниже, как вы могли бы написать запрос, который возвращает эти имена, но отображает их в алфавитном порядке по фамилии

каталог

Jason Howard, Tom Albert, Sam Smith

Чтобы сделать это по имени, я думаю, вы можете просто сделать:

select * from directory order by name

Я предполагаю, что полное имя - это поле 'name'

Ответы [ 3 ]

1 голос
/ 19 мая 2019

Как сказал Джим Хорн, это не очень хороший подход. Но если мы рассмотрим последнюю часть имени как фамилию пользователя (которая, конечно, разделена пробелами), то вы можете использовать этот запрос:

SELECT SUBSTRING_INDEX(TRIM(name), ' ', -1) AS LAST_NAME FROM `table_name` ORDER BY LAST_NAME
1 голос
/ 19 мая 2019

Это действительно примечание. Нет причин выбирать фамилию, чтобы упорядочить ее. Вы можете просто использовать выражение в ORDER BY:

ORDER BY SUBSTRING_INDEX(name, ' ', -1)

TRIM() не требуется, если ваши данные не очень неряшливы - с пробелами в конце столбца имени.

0 голосов
/ 19 мая 2019

Ваша таблица имеет только полное имя с именем, фамилией, пробелом или отдельные столбцы для имени и фамилии?

Если да, то это ваш запрос с ORDER BY фамилией.

Если нет, то то, что вы спрашиваете, будет реальной болью в кодировании для тех, у кого несколько пробелов в имени, так как вы никогда не поймете логику, для которой фамилия является последней,таких как Жан Клод Ван Дамм, Фил Вандер Бик, Гонконг Фуи и Билл С. Престон Эсквайр III.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...