1

これは以前使った...

UPDATE whatever_table SET whatever_col = SUBSTRING(MD5(RAND()) FROM 1 FOR 12)

... mysql テーブルにランダムな文字列を追加します。

ここで、同様に、テーブル内のすべてのレコードに英数字の「PIN」を追加したいと考えています (これは数百のレコードにすぎません)。「PIN」は英数字である必要がありますが、「1」、「0」、 「お」「l」など

これらのあいまいな文字を除外するために上記のクエリを更新する方法を誰か教えてもらえますか?

ティア

4

2 に答える 2

0

数値の場合:

select concat(2+floor(rand()*8), 2+floor(rand()*8))

必要な桁数だけ 2+floor(rand()*8) を繰り返します

英数字の場合は、置換を使用してください。または、許可された値でテーブルを作成し、それをクロス結合して一意のピンを作成し、それらのピンを rand 整数で呼び出すことができます。

編集:別のより良い方法を見つけました-rand intを基数8(0〜7の数字)に変換し、次にすべての数字に2を追加して、2〜9のすべての数字を作成します

conv(floor(rand()*10000), 10,8)+22222を選択

于 2013-09-17T11:12:35.637 に答える