お知らせの詳細ページには前後のお知らせにとぶリンクをつけます。その前後のお知らせを取得するSQLで躓いています。07:56#2、#3です。検索済の行を再表示しようとした場合、「他ユーザに削除されていたらどうするか?」といったことは検討されていますか?(1)そのユーザが接続されている間は、同じ表示結果を保証する。(2)最新の情報を表示する。→その場合、例えば「最初の表示時は10行あった」ものが、他ユーザに削除されて「9行しかない」といった状態になったらどう表示するか?などです。07:40#2回答者です。結論から言うと、「フィールドを結合して検索」する必要は、まったくありません。いった操作は、「ページング」と呼ばれます。MySQLはLIMIT句、OFFSET句を実装しているので、こういった操作には便利です。x,nといった指定になり、xは開始位置(先頭行からの場合は、0)、nは検索する行数です。この操作を行なう場合、活用できるインデクスがないと、母体件数に比例して性能が悪くなります。そこで、一つ問題があります。A列、B列の降順はいいのですが、C列は昇順にする必要があるのでしょうか?MySQLでは、バージョン5.1でも、昇順と降順が混在するインデクスを実装していません。定義はできるのですが、実際にはすべての列が昇順のインデクスしか作成できません。...このインデクスは、すべてのインデクス構成列が、昇順かまたは降順の場合に利用できます。C列も降順でよく、MyISAMを利用できるなら、AUTO_INCREMENTも使用できます。表定義は、次のような指定になります。...C列を降順にできないなら、AUTO_INCREMENTを使用せず、負の数値を入れるといった方法を検討する必要があります。下記のSQLを実行すれば、追加毎に「C列の最小値-1」を格納できます。BY指定をすべてDESCにでき、インデクスを活用できます。17:39CONCAT(A,B,C)ただ、まっとうなSQL処理ではないのでパフォーマンスは期待できませんこの回答への補足ありがとうございます。これから、試してみます。ひとつ教えてください。Cはintで11桁あるのですが1桁しか入っていない場合あります。その場合、CONCATで3つをくっつけると桁数が違ってしまうのですが・・・。テーブル結合で、結合フィールドをWHERE句に用いた時に、結合フィールドのデータがNULLになってしまう。[初心者]A表の2つの値からB表を検索する。