|
|
|
Сортировка в поле Varchar с текстом
|
|||
|---|---|---|---|
|
#18+
Добрый вечер. Ребяты, у мну вопрос с сортировкой, ответа я нормального не нашел, вот в чем суть: id name1 Текст 12 Текст 103 Текст 24 Текст 125 Аааа 1 Select * FROM table ORDER BY name ASC Вот таким обычным запросом у меня будет результат: Aaaa 1 Текст 1 Текст 10 Текст 12 Текст 2 Но хотелось бы результат был таким: Aaaa 1 Текст 1 Текст 2 Текст 10 Текст 12 т.е. и по тексту и по цифрам которые там идут. В интернете перерыл вариант с name+0 ничего нормального не дает, подскажите, возможно ли это сделать средставами MySQL? Буду очень благодарен за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 21:10:37 |
|
||
|
Сортировка в поле Varchar с текстом
|
|||
|---|---|---|---|
|
#18+
Uadeveloper, Сделать дополнительное поле для сортировки... не предлагать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 21:24:49 |
|
||
|
Сортировка в поле Varchar с текстом
|
|||
|---|---|---|---|
|
#18+
Если содержимое ИМЕННО ТАКОЕ - слово-пробел-число, то Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 21:33:49 |
|
||
|
Сортировка в поле Varchar с текстом
|
|||
|---|---|---|---|
|
#18+
mysql> select id,name from table_name order by substring_index(name,' ',1),substring_index(name,' ',-1)*1; +----+---------------+ | id | name | +----+---------------+ | 4 | Aaaa 1 | | 5 | Aaaa 10 | | 1 | Текст 1 | | 2 | Текст 2 | | 3 | Текст 10 | | 6 | Текст 12 | +----+---------------+ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 21:34:55 |
|
||
|
Сортировка в поле Varchar с текстом
|
|||
|---|---|---|---|
|
#18+
Akina, Нет, содержимое может быть не только такое, может быть небольшой текст (скажем до 3х пробелов). Да, этот вариант я тоже пробовал. Скажите, больше вариантов нет? Отдельное поле сортировки мне не будет удобно, даже я бы сказал затруднительно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 21:48:00 |
|
||
|
Сортировка в поле Varchar с текстом
|
|||
|---|---|---|---|
|
#18+
UadeveloperНет, содержимое может быть не только такое, может быть небольшой текст (скажем до 3х пробелов). Да, этот вариант я тоже пробовал. А числовая составляющая - всегда имеется и всегда последняя? Дайте формализованно все варианты данных этого поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 21:53:55 |
|
||
|
Сортировка в поле Varchar с текстом
|
|||
|---|---|---|---|
|
#18+
Uadeveloper, вариант один, разделить на две части - строковую и числовую, и сортировать по обоим частям, но только по строковой сортировать как строка, а по числовой как число. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 22:41:41 |
|
||
|
Сортировка в поле Varchar с текстом
|
|||
|---|---|---|---|
|
#18+
UadeveloperОтдельное поле сортировки мне не будет удобно, даже я бы сказал затруднительноЗатруднительно для мускуля будет разбирать функцией на лету существующую строку, и по результату разбора делать сортировку. По сути, это будет временная таблица, которая создается при каждом запросе. Гораздо проще при добавлении строки в таблицу заполнить отдельные дополнительные поля, по которым и будет происходить сортировка. По крайней мере, заполнить их придется один раз при добавлении/изменении записи. Это может быть одно поле, два, или более - от структуры строки сильно зависит и от правил сортировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2013, 14:14:26 |
|
||
|
Сортировка в поле Varchar с текстом
|
|||
|---|---|---|---|
|
#18+
vkle, вот-вот. Выбор: или делать разбор и сортировку "на лету" или таки добавить поле... мощность работ - одинакова, но в первом случае она будет выполняться каждый запрос, а во втором однажды... я - за добавление поля(ей). :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 06:58:14 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38383297&tid=1836139]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
73ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 340ms |

| 0 / 0 |
