2015.
05.
15
11:02:19
結論から書くと、select文のorder by句を
とすればOKです。
データ自体はランダムに抽出されますが
【数字】が同じであれば、同じデータが取得されます。
それでは詳細を書いていきます。
とあるサイトで「その他の記事」みたいな形で
記事のタイトルをランダムに表示したくてですね。
のようなSQL文を発行していたのです。
ところがどっこい、これだとちょっと問題がありました。
その問題とは
ページを更新すると、表示内容が変わる
です。
ページの更新ボタンを押したり、次のページに移動して戻ってくると
表示内容が変わってしまうのです。
仕方ないこととはいえ、これはちょっと不便だなぁ(-公-;
というわけで、これを回避するために
1.取得する内容自体はランダム
2.何回取得しても同じ結果を取得
ができないかな?と思い、調べたのが今回のきっかけです。
「1.」は既にできているので「2.」ができないかどうかを調べてみました。
Google先生、何とかならんの(--?
ふむふむ(--)
rand()のカッコの中に数字を入れて、例えば
のようにすればOKでした。
rand()のカッコ内に数字を入れれば、その数字に対応する結果が取得されます。
数字が同じであれば、取得結果は同じになります。
これだ!( ̄∀ ̄)
早速、rand()の中にページ番号を入れることにしました。
結果、取得内容をランダムで固定化することができました。
もちろん、ページが変わればページ番号も変わるので、取得内容も変わります。
同じページであれば、ページ番号が同じなので、取得結果は同じです。
ページを再表示しても、移動して戻ってきても同じ結果が取得されます。
やったねっ\(--)/
ORDER BY
rand(【数字】)
rand(【数字】)
とすればOKです。
データ自体はランダムに抽出されますが
【数字】が同じであれば、同じデータが取得されます。
それでは詳細を書いていきます。
とあるサイトで「その他の記事」みたいな形で
記事のタイトルをランダムに表示したくてですね。
SELECT
t.title
,t.url
FROM
tbl1 t
ORDER BY
rand()
;
t.title
,t.url
FROM
tbl1 t
ORDER BY
rand()
;
のようなSQL文を発行していたのです。
ところがどっこい、これだとちょっと問題がありました。
その問題とは
ページを更新すると、表示内容が変わる
です。
ページの更新ボタンを押したり、次のページに移動して戻ってくると
表示内容が変わってしまうのです。
仕方ないこととはいえ、これはちょっと不便だなぁ(-公-;
というわけで、これを回避するために
1.取得する内容自体はランダム
2.何回取得しても同じ結果を取得
ができないかな?と思い、調べたのが今回のきっかけです。
「1.」は既にできているので「2.」ができないかどうかを調べてみました。
Google先生、何とかならんの(--?
ふむふむ(--)
rand()のカッコの中に数字を入れて、例えば
SELECT
t.title
,t.url
FROM
tbl1 t
ORDER BY
rand(1)
;
t.title
,t.url
FROM
tbl1 t
ORDER BY
rand(1)
;
のようにすればOKでした。
rand()のカッコ内に数字を入れれば、その数字に対応する結果が取得されます。
数字が同じであれば、取得結果は同じになります。
これだ!( ̄∀ ̄)
早速、rand()の中にページ番号を入れることにしました。
結果、取得内容をランダムで固定化することができました。
もちろん、ページが変わればページ番号も変わるので、取得内容も変わります。
同じページであれば、ページ番号が同じなので、取得結果は同じです。
ページを再表示しても、移動して戻ってきても同じ結果が取得されます。
やったねっ\(--)/
category:● MySQL