質問: perl + MySQLで質問です。 レコードの順番を変える方法はどのようにしたらよいでしょう? 例えば、 りんご,apple ライオン,lion バッタ,batta パソコン,pasokon という順番で入っているものを ライオン,lion りんご,apple バッタ,batta パソコン,pasokon というふうに順番を入れ替えるようなSQLってありますか?
回答: 1番のコメントを見る限り、並べる順番の条件は、「法則性はなく、任意に、好きな順番で」ということですね? だとしたら、レコードに順番を表すフィールドを設けるのが一番ふつうなのではないでしょうか。 3番目のフィールドにそれを設けたとすると、 ライオン,lion,1 りんご,apple,2 バッタ,batta,3 パソコン,pasokon,4 とデータをセットして、「order by 3番目フィールド」って並べてやればよいですよね。 ライオンとりんごの間に新たに「バナナ」を挿入したい場合は、 ライオン,lion,1 バナナ,banana,2 りんご,apple,3 バッタ,batta,4 パソコン,pasokon,5 とデータをセットしなおすことで実現できます。 もしかして、フィールドの追加は反則かもしれませんが、ご要望を満たす(任意の好きな順に並べる)にはこれしかないですね。 データ挿入時の論理については、いろいろ、もっと効率の良い方法が考えられますが、たかだか100個単位のデータならば、これで十分でしょう。