2014-02-04 5 views
0

Интересно, возможно ли в MySQL заказать мои результаты через столбцы имен, содержащие первые имена и фамилии.Сортировать результаты по полю, которое содержит имена и фамилию

Exemple:

"Название": Альберт CATERSON - Barabara Абелс - Крис WASPINK

SQL .. 
ORDER BY title 

Результат будет:

Альберт CATERSON - Barabara ABELS - Крис WASPINK

Но я хочу, чтобы отсортировать мои результаты по фамилии:

Абелс Barabara - CATERSON Альберт - WASPINK Крис

Знаете ли вы, если это возможно, чтобы сделать это в mysql? Спасибо.

+0

Вы имели в виду фамилию? – Alexander

+0

Да, исправлено. – jlafforgue

+0

и что не так с моим ответом? – Alexander

ответ

0

Если вы хотите порядка по фамилии, вам нужно использовать SUBSTRING_INDEX:

ORDER BY SUBSTRING_INDEX(title, ' ', -1);

Однако, если вы хотите также фамилию появляться первым, вам понадобится что-то вроде этого:
SELECT CONCAT(SUBSTRING_INDEX(title, ' ', -1), ' ', SUBSTRING_INDEX(title, ' ', 1))

1

Попробуйте, как это

DROP TABLE IF EXISTS OrderBySurname; 
Query OK, 0 rows affected, 1 warning (0.01 sec) 


CREATE TABLE OrderBySurname(id INT, title VARCHAR(255)); 
Query OK, 0 rows affected (0.26 sec) 


INSERT INTO `OrderBySurname` (`id`, `title`) VALUES ('1','Albert CATERSON'),('2', 'Barabara ABELS'),('3', 'Chris WASPINK'); 
Query OK, 3 rows affected (0.01 sec) 
Records: 3 Duplicates: 0 Warnings: 0 


SELECT title , SUBSTRING_INDEX(title, ' ', -1) AS sur_name FROM OrderBySurname ORDER BY sur_name; 
+-----------------+----------+ 
| title   | sur_name | 
+-----------------+----------+ 
| Barabara ABELS | ABELS | 
| Albert CATERSON | CATERSON | 
| Chris WASPINK | WASPINK | 
+-----------------+----------+ 
3 rows in set (0.00 sec) 


SELECT CONCAT(SUBSTRING_INDEX(title, ' ', -1),' ',SUBSTRING_INDEX(title, ' ', 1)) FROM OrderBySurname ORDER BY SUBSTRING_INDEX(title, ' ', -1); 
+----------------------------------------------------------------------------+ 
| CONCAT(SUBSTRING_INDEX(title, ' ', -1),' ',SUBSTRING_INDEX(title, ' ', 1)) | 
+----------------------------------------------------------------------------+ 
| ABELS Barabara                | 
| CATERSON Albert               | 
| WASPINK Chris                | 
+----------------------------------------------------------------------------+ 
3 rows in set (0.00 sec) 
+0

Спасибо за ваш ответ, очень полезно! – jlafforgue

+0

Вы можете принять ответ, если он работает для вас! –

Смежные вопросы