Вход | Регистрация


Функция максимум для строк в запросе

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует