2

したがって、これはこれを行う方法についてのクエリです。基本以上のことになると、私はMySQL/PHPコーディングが初めてなので、自動インクリメントintをどのように設定するのか疑問に思っています。 2つの姓は同じで、カウントされます。オンラインで検索しても何も見つかりませんでしたが、例は次のとおりです。

データベースには5人のユーザーがいます

 1. james smith 1   
 2. terry smith 2
 3. john smith 3
 4. jerry fields 1
 5. tom straus 1

これらのユーザーが登録すると、john smith が smith と同じ姓を持つ 3 番目の人物であり、jerry fields が姓フィールドを持つ最初の人物であるなどの int を作成する必要があります。

私が作成したフォームは、jquery/php ajax メソッドを使用してユーザーを登録するフォームですが、これに似たものを追加して、その番号と名前を組み合わせて特定のユーザー ID を作成したいと考えています。

4

1 に答える 1

2

UsingAUTO_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で参照してください。

于 2013-01-14T15:24:02.787 に答える