-1

DB 内のすべてをループして、コードのような一意の 3/4 文字の株式記号を与える必要があります。

私は(人々の)約600の名前を持っており、それらすべての一意のコードのような銘柄記号を生成したいと考えていますが、大まかに名前(銘柄記号など)に基づいています。

例: Dale Cooper は DCO/DAC/DC である可能性がありますが、600 個すべてが一意であるため、Darren Cooper は異なるコードを生成する必要があります。

first_name と last_name は異なる列にあります。

アドバイスをいただければ幸いです。

4

2 に答える 2

2

簡単にするために、4文字で可能です。

First letter:  first letter of firstname
Second letter: letter of the alphabet (starting with `A` keeping count)
Third letter:  first letter of lastname
Fourth letter: letter of the alphabet (starting with `A` keeping count)

そうすれば1 * 26 * 1 * 26 = 676、名前ごとに可能性があります.Dale CooperまたはDarren Cooperのいずれかがその676のうちの2つになります。つまり:

Dale Cooper    DACA
Darren Cooper  DACB
Douglas Cooper DACC

4 番目の文字が に達するZと、2 番目の文字は次のようになりますB

Dave Cooper    DACZ
Doctor Cooper  DBCA

等。

編集

レターコードで名前をより視覚的に保つには、次を使用することもできます。

First letter:  first letter of firstname
Second letter: first letter of lastname
Third letter:  letter of the alphabet (starting with `A` keeping count)
Fourth letter: letter of the alphabet (starting with `A` keeping count)
于 2012-08-31T11:47:10.300 に答える
0

mysqlだけに固執する:

UPDATE people
SET code = CONCAT(
    SUBSTRING(first_name, 1, 1),
    SUBSTRING(last_name, 1, 1),
    SUBSTRING( MD5( CONCAT(first_name, last_name) ), 1, 2)
)

あなたは得る:

  • 名の最初の文字;
  • 姓の最初の文字;
  • 名 + 姓の has の最初の 2 文字。

このような少人数のグループでは、衝突が発生することはありません。

于 2012-08-31T11:53:36.380 に答える