|
Функция максимум для строк в запросе | ☑ | ||
---|---|---|---|---|
0
Waterfall1
04.12.17
✎
15:38
|
Есть подарочные сертификаты в формате "ххх/уууууу" Где У числа. А "ххх" всегда одинаковы в рамках одного вида сертификата.
На данный момент очень плохой код определяет новый номер для сертификата через преобразование "уууууу" в число и последующие их сравнения. Есть использовать Максимум(КодСертификата) в запросе, то в результате действительно получаем последний код сертификата. Интересует насколько стабильно это будет работать, не могут ли возникнуть проблемные ситуации при взятии максимума по полю с типом строка. |
|||
1
Петрович 2018
04.12.17
✎
15:41
|
(0) От наличия лидирующих нулей зависит.
|
|||
2
_Дайвер_
04.12.17
✎
15:42
|
(0) Как ты максимум получишь по полю с типом строка? Строке вообще пофиг, только после преобразования ты можешь получить максимум, но так как 999999 сертификатов выдадите не скоро, да еще и приставка в виде ХХХ используется то вероятность такая минимальная.
|
|||
3
Waterfall1
04.12.17
✎
15:44
|
(1) Даже с лидирующими нулями в разном количестве отрабатывало. Просто хочу перестраховаться при переносе на живую базу.
|
|||
4
Мыш
04.12.17
✎
15:44
|
(0) "Максимум" для строки - это последнее упорядоченное по возрастанию. Отсюда все сложности.
|
|||
5
dezss
04.12.17
✎
15:46
|
если там будут всегда только цифры, то проблем не будет (в рамках одного и того же "ххх")....
|
|||
6
бомболюк
04.12.17
✎
15:47
|
(3) если лидирующих нулей нет то результат упорядочивания строки и числа будет разным.
|
|||
7
dezss
04.12.17
✎
15:47
|
(5) + только вот если несколько сенсов одновременно буду производить добавление, то будут дубли
|
|||
8
Waterfall1
04.12.17
✎
15:49
|
(7) Не относится к теме, этот момент давно проработан. Номер получается прямо перед записью в БД.
|
|||
9
Waterfall1
04.12.17
✎
15:50
|
(6) Тоесть в случае если у нас в строке "уууууу" есть хотя бы один лидирующий ноль, то результат максимума будет корректным?
|
|||
10
dezss
04.12.17
✎
15:52
|
(8) ну смотри
(9) длина строки всегда должна быть одинаковой, всегда должны быть все лидирующие нули, либо всегда их быть не должно(тогда вместо нулей должно быть что-то другое)... |
|||
11
бомболюк
04.12.17
✎
15:53
|
(9) не один. должна быть равной длина всех подстрок. потому что "3" > "11", но 3 < 11 и "03" < "11".
|
|||
12
Waterfall1
04.12.17
✎
15:54
|
(10) Строка всегда одной длинны в рамках одного вида сертификата. Всегда есть лидирующие нули, разве что перейдем на первый разряд. Пока вроде ~021500 максимальный номер.
|
|||
13
бомболюк
04.12.17
✎
15:55
|
(12) тогда все будет хорошо
|
|||
14
dezss
04.12.17
✎
15:57
|
(12) сравнение строк идет посимвольно, как только нашли первую пару отличающихся символов, сразу выдается результат, примеры как раз в (11)
|
|||
15
Waterfall1
04.12.17
✎
16:13
|
Спасибо, создал себе тестовые таблицы с разными вариантами, и вроде при всех возможных вариантах отрабатывает корректно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |