Так что это скорее вопрос о том, как можно это сделать, я новичок в кодировании MySQL / PHP, когда речь идет о более чем основах, поэтому мне просто интересно, как можно настроить автоматическое инкрементное int, где if два последних имени были такими же, как и их. Я не смог найти что-либо на нем во время поиска в Интернете, но примером может быть:
в базе данных у нас есть 5 пользователей
1. james smith 1 2. terry smith 2 3. john smith 3 4. jerry fields 1 5. tom straus 1
Когда эти пользователи регистрируются, мне нужно создать int, чтобы john smith был третьим человеком, чтобы иметь ту же самую фамилию кузнеца, в то время как jerry-поля – это первый человек с полями последнего имени и т. Д. Как это можно сделать?
Я создал форму, которая регистрирует пользователя с помощью jQuery / php ajax, но я хотел бы добавить что-то похожее на это, чтобы он сочетал это число с их именами для создания определенного идентификатора пользователя.
Как AUTO_INCREMENT
разделе Использование AUTO_INCREMENT
:
Для таблиц
MyISAM
иBDB
вы можете указатьAUTO_INCREMENT
на вторичном столбце в индексе с несколькими столбцами. В этом случае генерируемое значение для столбцаAUTO_INCREMENT
вычисляется какMAX( auto_increment_column ) + 1 WHERE prefix= given-prefix
. Это полезно, если вы хотите поместить данные в упорядоченные группы.
Поэтому вы можете сделать:
CREATE TABLE my_table ( firstname VARCHAR(31) NOT NULL, lastname VARCHAR(31) NOT NULL, counter BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (lastname, counter) ) Engine=MyISAM; INSERT INTO my_table (firstname, lastname) VALUES ('james', 'smith' ), ('terry', 'smith' ), ('john' , 'smith' ), ('jerry', 'fields'), ('tom' , 'straus') ;
Посмотрите на sqlfiddle .