Мои текущие проекты состоят из регистрации семей разных областей в городе. я хочу сгенерировать уникальный идентификатор для каждой семьи, в которой он нужен для другой части этого проекта. В каждом районе города уже есть уникальный номер, например: 855, 856, 857 и т. д.
Поэтому я планирую сгенерировать уникальный идентификатор семьи путем объединения уже имеющегося уникального номера + текст «FM» + номер (1,2,3 ….) и сохранить этот идентификатор в БД вместе с деталями семьи.
Например, (Area-855): 855FM1, 855FM2, 855FM3 ….
если последний зарегистрированный идентификатор семейства — 855FM40, то следующий идентификатор семейства должен быть 855FM41. поэтому я хочу получить наибольшее значение из поля UID. выше: например, наибольшее значение составляет 855FM41. как я это делаю ?
У меня есть простая логика, которая получает все UID, а затем разделить его после «FM». затем найти самый большой и т. д.
Как мне решить эту проблему.? Есть ли простой способ, кроме этого?
С помощью команды ORDER вы можете отсортировать данные, упорядочив по возрастанию или убыванию одного столбца.
поэтому сначала мы заказываем столбец FamilyID по убыванию (в sql мы используем DESC), а затем мы получаем первую строку с наибольшим значением FamilyID с помощью команды «LIMIT 0,1»
Попробуй это:
SELECT * FROM families ORDER BY FamilyID DESC LIMIT 0, 1
Вы должны использовать два столбца вместо одного. Например это:
FamilyID
--------
855FM1
855FM2
Должен храниться как:
CityID FMNumber
------ --------
855 1
855 2
Таким образом, данные должны быть более простыми в управлении и менее избыточными. И да, можно определить первичные или уникальные ключи для нескольких столбцов.