私は、mySQL データベースのストアド関数を書くことにまったく慣れていないので、ここでやろうとしていることがまったく可能かどうかはわかりません。
テーブルのランダムな行から列を返す関数が必要です。ORDER BY RAND() メソッドを使用してそれを行うのではなく、次のようにします。
DECLARE MAX_COUNT INT DEFAULT 120000;
DECLARE rand_offset INT;
DECLARE str_rnd_word VARCHAR(255);
SET rand_offset = FLOOR((RAND() * MAX_COUNT));
SELECT word INTO str_rnd_word FROM all_words LIMIT 1 OFFSET rand_offset ;
RETURN str_rnd_word;
そのような本体を持つ関数を作成すると、MySQL はエラーをスローします。しかし、ハードコードされた数値を OFFSET として使用すると、問題なく動作します。
誰かがこの主題に光を当てることができますか.
Windows ボックスで MySQL 5.0.45 を実行しています。
ありがとう