結果のレコードを次のようにしたい場合は、 ランダムに注文 、いくつかのデータベースに従って次のコードを使用する必要があります。
ここで質問があります。データベースからランダムなレコードや行をフェッチする必要は何ですか?
場合によっては、次のようなランダムな情報を表示したい場合があります。 記事、リンク、ページ 、などをユーザーに伝えます。
CSS太字
いずれかのデータベースからランダムな行をフェッチしたい場合は、データベースに応じて変更されたクエリを使用する必要があります。
MY SQL でランダムな行を返したい場合は、次の構文を使用します。
SELECT column FROM table ORDER BY RAND () LIMIT 1;
SELECT column FROM table ORDER BY RANDOM () LIMIT 1;
SELECT TOP 1 column FROM table ORDER BY NEWID ();
SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1;
SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY;
この概念を実際に理解するために、MySQL データベースを使用した例をいくつか見てみましょう。次のデータを含むテーブル項目がデータベースに作成されたとします。
表: 項目
ID | 項目名 | 品目_数量 | 商品_価格 | 購入日 |
---|---|---|---|---|
1 | 石鹸 | 5 | 200 2021-07-08 | |
2 | 歯磨き粉 | 2 | 80 | 2021-07-10 |
3 | ペン | 10 | 50 | 2021-07-12 |
4 | ボトル | 1 | 250 | 2021-07-13 |
5 | みがきます | 3 | 90 | 2021-07-15 |
items テーブルからランダムなレコードを取得するとします。
コンピューターとは何ですか
クエリは次のように書きます。
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
次のような結果が得られる場合があります。
ID | 項目名 | 品目_数量 | 商品_価格 | 購入日 |
---|---|---|---|---|
3 | ペン | 10 | 二十 | 2021-07-12 |
ここで、同じクエリをもう一度実行してみましょう。
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
次のような結果が得られる場合があります。
ID | 項目名 | 品目_数量 | 商品_価格 | 購入日 |
---|---|---|---|---|
5 | みがきます | 3 | 90 | 2021-07-15 |
上記の結果から、同じクエリを 2 回実行した場合でも、両方の回で異なるレコードが出力されると結論付けることができます。 RAND () 関数は、単一のテーブルから同じクエリに対して 2 回ともランダム レコードを選択しました。したがって、同じクエリを再度実行しても、毎回異なる出力が得られます。 RAND()関数を使用すると、まれに同じレコードが連続して取得される可能性があります。
ここで、テーブルのすべてのレコードをランダムにフェッチしたいとします。
これを行うには、次のクエリを実行する必要があります。
マイフリックス
mysql> SELECT * FROM items ORDER BY RAND ();
次のような結果が得られる場合があります。
ID | 項目名 | 品目_数量 | 商品_価格 | 購入日 |
---|---|---|---|---|
4 | ボトル | 1 | 250 | 2021-07-13 |
5 | みがきます | 3 | 90 | 2021-07-15 |
1 | 石鹸 | 5 | 200 | 2021-07-08 |
2 | 歯磨き粉 | 2 | 80 | 2021-07-10 |
3 | ペン | 10 | 50 | 2021-07-12 |
また、employee テーブルに対して RAND() 関数を再度実行すると、レコードの配置が異なる可能性があります。