Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сортировка текстового значения как целочисленного
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть таблица с ценами. Тип поля цены - TEXT, надо выводить значения поля от меньшего к большему. Есть пробел между тысячной и сотой цифрой. До пробела, как видно ниже, сортировка корректная, дальше вразброс. Вот что получается при запросе Код: sql 1. price CAST (price AS signed) 8 791 8 8 791 8 8 082 8 9 374 9 9 823 9 10 186 10 12 698 12 12 257 12 13 959 13 14 920 14 14 463 14 15 132 15 16 117 16 16 023 16 16 606 16 Просьба пояснить как правильно отсортировать или хотя бы намекнуть. Как вообще обычно в таких случаях делается сортировка? Ведь стоимость зачастую вносится в БД в таком формате (X XXX) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2017, 12:47 |
|
||
|
Сортировка текстового значения как целочисленного
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2017, 13:00 |
|
||
|
Сортировка текстового значения как целочисленного
|
|||
|---|---|---|---|
|
#18+
smnстоимость зачастую вносится в БД в таком формате (X XXX)Вообще-то никогда. Надо отличать значение от его отображения на экране. И то, что значение ХРАНИТСЯ с паразитными пробелами, это более чем нехорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2017, 13:02 |
|
||
|
Сортировка текстового значения как целочисленного
|
|||
|---|---|---|---|
|
#18+
Стоимость хранится в numeric/decimal или int (соответственно в центах/копейках/etc вместо рублей/долларов/евро). Как она выводится и в каком формате циферки удобнее вносить - задача приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2017, 13:02 |
|
||
|
Сортировка текстового значения как целочисленного
|
|||
|---|---|---|---|
|
#18+
авторSELECT CAST(REPLACE(price,' ','') AS signed) FROM table ORDER BY CAST(REPLACE(price,' ','') AS signed) Тоже выдает только тысячные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2017, 13:20 |
|
||
|
Сортировка текстового значения как целочисленного
|
|||
|---|---|---|---|
|
#18+
Akinasmnстоимость зачастую вносится в БД в таком формате (X XXX)Вообще-то никогда. Надо отличать значение от его отображения на экране. И то, что значение ХРАНИТСЯ с паразитными пробелами, это более чем нехорошо. Тогда вопрос бы и не возник. Выгрузка из 1С происходит в текстовом формате. На этот процесс повлиять не могу, равно как и менять что-то в таблице. Задача стоит только корректно рассортировать при выводе данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2017, 13:24 |
|
||
|
Сортировка текстового значения как целочисленного
|
|||
|---|---|---|---|
|
#18+
smn, Ну уберите пробелы REPLACE-ом. smnВыгрузка из 1С происходит в текстовом формате. На этот процесс повлиять не могу, равно как и менять что-то в таблице.На выгрузку повлиять не можете, это понятно. Но на загрузку-то в MySQL почему не можете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2017, 13:26 |
|
||
|
Сортировка текстового значения как целочисленного
|
|||
|---|---|---|---|
|
#18+
авторНу уберите пробелы REPLACE-ом. Я это и пытаюсь сделать, но не могу понять, что не так делаю: как я понял, при значении 9 823 , REPLACE (9 823,' ','') должно выдавать 9823 , а у меня в запросе выводится 9 , т.е. только то, что до пробела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2017, 13:41 |
|
||
|
Сортировка текстового значения как целочисленного
|
|||
|---|---|---|---|
|
#18+
Akinasmnстоимость зачастую вносится в БД в таком формате (X XXX)Вообще-то никогда. Надо отличать значение от его отображения на экране. И то, что значение ХРАНИТСЯ с паразитными пробелами, это более чем нехорошо. Вот это и называется "нарушение доменной целостности данных". Избавляйтесь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2017, 13:43 |
|
||
|
Сортировка текстового значения как целочисленного
|
|||
|---|---|---|---|
|
#18+
smnкак я понял, при значении 9 823 , REPLACE (9 823,' ','') должно выдавать 9823 , а у меня в запросе выводится 9 , т.е. только то, что до пробела.Да щазз!!! Вот посмотри в теге кода (это кнопка SRC над полем ввода, пользуйся, кстати, ею, а не QUOTE) твой вариант и правильный: Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2017, 14:08 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39404822&tid=1830909]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 143ms |

| 0 / 0 |
