sql >> データベース >  >> RDS >> Mysql

mysqlの一意の番号の生成

    やや厄介に思えますが、これが目標を達成するためにできることです:

    SELECT FLOOR(10000 + RAND() * 89999) AS random_number
    FROM table
    WHERE random_number NOT IN (SELECT unique_id FROM table)
    LIMIT 1
    

    簡単に言えば、N個のランダムな数値を生成します。ここで、Nはテーブルの行の数であり、テーブルにすでに存在するものを除外し、残りのセットを1つに制限します。

    大きなテーブルでは多少遅くなる可能性があります。処理を高速化するために、これらの一意のIDからビューを作成し、ネストされたselectステートメントの代わりにそれを使用できます。

    編集:引用符を削除



    1. OracleD2kFormsに組み込まれているNAME_IN

    2. PDBのプラグを抜くORA-17528エラー

    3. HTMLをMySQLデータベースに保存する

    4. 既存のテーブルに外部キーを追加する