-1

MySQLデータベースから画像データを取得するランダムな画像バナーを作成したいと思います。そして、最新の3つのレコードのみをランダムにフェッチしたいと思います。

最新の3つのレコードをランダムな順序で取得するにはどうすればよいですか?

私は次のクエリです:

SELECT * FROM bottom_advt WHERE bottom_advt_page_name='News' ORDER BY RAND() LIMIT 1

しかし、それは機能していません。

4

4 に答える 4

4

あなたは3つのレコードを言いました。だから試してください:

SELECT * FROM bottom_advt WHERE bottom_advt_page_name='News' ORDER BY RAND() LIMIT 3
于 2013-03-23T15:09:12.187 に答える
1

結果を の 1 つに制限していますLIMIT 1。に変更してLIMIT 3、3 つの結果を取得します。

于 2013-03-23T15:09:16.217 に答える
0

最後の 3 つのレコードのいずれかが必要な場合は、これを試してください。

SELECT * FROM bottom_advt WHERE bottom_advt_page_name='News' AND id+3>last_insert_id() ORDER BY RAND() LIMIT 1
于 2013-03-23T15:28:41.307 に答える
0

これを使用できます:

SELECT *
FROM bottom_advt
WHERE ID IN (SELECT * FROM (
  SELECT id
  FROM bottom_advt
  WHERE bottom_advt_page_name='News'
  ORDER BY id DESC
  LIMIT 3) last)
ORDER BY RAND()
LIMIT 1

サブクエリは を持つ最後の 3 つの ID を返し、bottom_advt_page_name='News'外側のクエリはそれらの 1 つをランダムに選択します。

ここでフィドルを参照してください。

于 2013-03-23T16:33:11.033 に答える