mysqlのランダムな結果を表示する

私はイベントと呼ばれるmysqlテーブルを持っています。いくつかのイベントが紹介されています。最新の2つのイベントの1つをランダムに表示したい。フィールド 'timestamp'は、イベントの作成時刻のUNIXタイムスタンプを保持します。

クエリは次のようになります。

$query = "SELECT * FROM events WHERE featured = 1 ORDER BY timestamp DESC LIMIT 2;";

それらの2つのイベントのうちの1つを返すようにクエリを構文解析し、すぐに表示する方法はありますか?

ここには何が勧められますか?

5

2 答え

ORDER BY RAND()LIMIT 1; 説明の最後にある RAND() のMySQLドキュメント。ネストされていないテーブルを2行しか持たないので、ネストされていないテーブルはできません。

SELECT * FROM 
    (SELECT * FROM events WHERE featured = 1 ORDER BY timestamp DESC LIMIT 2) 
ORDER BY RAND() LIMIT 1;
14
追加された
@AnPelはい、いわゆるサブクエリです。
追加された 著者 middus,
それはクエリ内のクエリですか?
追加された 著者 ppp,
OK。それから私はそれを開始スタイルにします。あなたの時間はTYです。
追加された 著者 ppp,

試してください:

SELECT * FROM
    (SELECT * FROM EVENTS WHERE featured = 1 ORDER BY `timestamp` DESC LIMIT 2) AS temp
ORDER BY RAND() LIMIT 1
0
追加された
あなたの時間をありがとう、これは正解でした。もう1つは詳細な情報を含んでいたので、私はそれを修正しました。
追加された 著者 ppp,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com