プロが教える店舗&オフィスのセキュリティ対策術

dataテーブル
id name
1 あいう
2 かきく
3 さしす
...
..
.

というテーブルがあり、nameの値を任意の順番ですべて取り出したいのですが、どのようにSQLを書けばいいのか分かりません。
idは自動連番です。
idの順に取り出すにも並び替えが必要ですし、SQL文以外にも何か良い方法が有りましたらご教授いただけると幸いです。
なお、このテーブルは頻繁では有りませんが順次データが増えていきます。
そのたびに取り出す順番を検討するので、更新時にあまり手間のかからない方法が望ましいです。
データベースのバージョンは5.1です。
よろしくお願いします。

A 回答 (3件)

並べ替えの為の別テーブルを作ってみてはどうでしょうか。



例えば(TORIDASI)テーブルを作って、
ID|SEQ
1|2
2|1
3|3

結合したらどうでしょうか。

select name
from data inner join toridasi
on data.id = toridasi.seq
order by toridasi.id;

name
かきく
あいう
さしす

となるのでは?
任意に替えたいときはtoridasiテーブルをupdateしてください。
    • good
    • 0

あー任意って本当に任意で明確なルールが確定されない(昇順、降順など)ってことですか・・・。


それだと、SQLでは不可能です。
やり方としては、プログラムでガリガリコーディングするか
ストアドを組み上げることになるのかな?
ちょっと、MYSQLでストアドとか組んだこと無いんであやふやで申し訳ないですが・・・。

データ更新時に順番を検討するってことは、並び替えのが可変になるってことだから、結構難しいのではないですかね?
    • good
    • 0

普通にOrder Byじゃだめなんでしょうか?

この回答への補足

order byでは任意の順で取り出すことができないのです。
たとえば、







のデータで、い、う、お、あ、えの順で取り出したいとき、order byではこの順に並び替えて取り出すことができません。

補足日時:2009/07/10 16:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す