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

PHPMySQLはランダムな行を選択します

    任意の数のランダムレコードを選択するために私が見つけた最良の方法は、クエリでOFFSETを使用することです。

    6つのランダムなレコードが必要だとしましょう。上記の回答から借りて、データベース内の友達の総数を数えます。

    $sql = mysql_query("SELECT COUNT(*) AS total FROM friends WHERE member_id='". $_SESSION['userid'] ."'");
    
    $get_count = mysql_fetch_array($sql); // Fetch the results
    
    $numfriends = $get_count['total']; // We've gotten the total number
    

    ここで、上記の合計から6つのランダムなレコードを取得します(できれば> 6)、

    $query = mysql_query("SELECT * FROM friends WHERE member_id='". $_SESSION['userid'] ."' LIMIT 6 OFFSET " . (rand(0, $numFriends));
    
    
    while ($rows = mysql_fetch_array($query))
    {
      /// show your $rows here
    }
    

    OFFSETを使用することは、最善または最も効率的ではないかもしれませんが、大規模なデータベースでは、データベースを停止させることなく機能します。



    1. エラーコード:1406。データが列に対して長すぎます-MySQL

    2. Mysql2147483647でのVarcharの問題

    3. sqlplusでSTARTを使用して呼び出されるSQLファイル内のPL/SQLブロックに引数を渡すにはどうすればよいですか?

    4. 一意の制約、重複を回避する方法