2016-05-11 3 views
0

私はテーブルの顧客 を作成しましたが、最初の名前を挿入すると、最初の名前をanishにすると自動的に生成されるbatchnumberが最初に3文字になるはずですそのバッチ番号与えられた1人の以上同じ名前がここbatchnumberベースのmysql名

をインクリメント取得する必要があります持っている場合は「001」が を追加した後、「ANI」を選択し、私はOUTPUTサンプル出力

Firstname | Batchnumber 
--------------------- 

Anish  | Ani001 
Uma  | Uma001 
Anish  | Ani002 
Uma  | Uma002 
Loki  | Lok001 
+0

テーブル定義を追加してください。エントリを挿入したとき、またはこれがクエリである場合は、バットナンバーを生成する必要があるかどうかを明確にしてください。同時に複数のエントリーを挿入できるかどうかを指定してください。最初の名前を変更するとどうなるかを指定してください(たとえば、最初のAnishの名前をUmaに変更した場合の結果と、次に:Anishが最初にUmaに名前を変更した後に取得する番号は何ですか)。 – Solarflare

答えて

0
SET @ndx = 0; 
SET @cur_hash = ''; 
SELECT id,Firstname ,CONCAT(left(Firstname ,3),IF(ndx>=0,CONCAT('00',ndx),'')) Firstname 
FROM (SELECT id, 
    @new_hash := MD5(Firstname), 
    (@ndx := IF(@[email protected]_hash,@ndx+1,1)) ndx, 
    @cur_hash := MD5(Firstname), 
    Firstname 
FROM (SELECT id,Firstname FROM customer ORDER BY Firstname) AA) A order by id; 

を追加しました:

1 | Anish  | Ani001 
2 | Uma  | Uma001 
3 | Anish  | Ani002 
4 | Uma  | Uma002 
5 | Loki  | Lok001 
関連する問題