• ベストアンサー

WHERE句で書いた順に表示するには

mil_milの回答

  • mil_mil
  • ベストアンサー率50% (1/2)
回答No.3

どういう要件かわかりませんが、 テーブルにソート用の番号のカラムを追加するとか、 idとソート順のテーブルと結合するとか、 そういう解決方法もあると思います。 ソートしたいidの順番が可変だと厳しいですけど。

tomo95
質問者

お礼

idの順番は可変ですので、 おっしゃるとおり、DB側ではやはり厳しいのですね。 なのでPHP側でソートすることにしました。 ご回答ありがとうございました!

関連するQ&A

  • ORACLEでwhere句の検索順序

    Oracle9i windows2000です。 以下のようなテーブルがあります。 table_a ----------------------- id   NUMBER(10,0) NOT NULL, sort   NUMBER(10,0) NOT NULL, name   VARCHAR(10), text   VARCHAR(255) この条件で、以下のふたつのSELECT文を発行した時、パフォーマンスが良いのはどちらですか? Oracleでは後ろから検索されると聞いたことがあるのですが本当でしょうか? ※idにプライマリキー、 id,sortにインデックスが貼ってあります。 (1)SELECT text FROM table_a WHERE id = 1 AND sort = 2 AND name = 'a' (2)SELECT text FROM table_a WHERE name = 'a' AND sort = 2 AND id = 1

  • SQL 句の評価順

    SQL句の評価順について皆さんの意見をいただけないでしょうか? <ケース1:SELECTが最後> ・FROM ・WHERE ・GROUP ・HAVING ・ORDER ・SELECT <ケース2:SELECTがトップ> ・SELECT ・FROM ・WHERE ・GROUP ・HAVING ・ORDER <ケース3:ORDERの前にSELECT> ・FROM ・WHERE ・GROUP ・HAVING ・SELECT ・ORDER どのケースで評価されますでしょうか? ご教授お願いします。

  • WHERE id = ? について

    SELECT name FROM category WHERE id = ? の=?てどんな意味があるのでしょうか。

    • ベストアンサー
    • MySQL
  • whereの使い方が分からないのですが…

    foodテーブルの全ての項目内から「りんご」「みかん」というのキーワードをAND検索させたいのですが、 select * from food where ("りんご" AND "みかん"); select * from food where * "りんご" AND "みかん"; select * from food where *="りんご" AND *="みかん"; select * from food where *=("りんご" AND "みかん"); 思いつく限り試しましたが、どれもうまく行きません。 select * from food where (a="りんご" AND a="みかん") or (b="りんご" AND b="みかん") or (c="りんご" AND c="みかん") or… と、延々と続いて書くしかないのでしょうか? 何か方法はありますか?

    • ベストアンサー
    • MySQL
  • select文のwhere句に配列を入れて検索したい

    こんばんは。 題名の通り、select文のwhere句に配列を入れて検索したいのですが、 同じ質問↓も見つけ、やってはみるのですがうまくいかないので、教えてください。 http://oshiete1.goo.ne.jp/qa2940474.html 現在、 $member_id という配列にデータを入れ(この配列には正しく値が入っています。) $sql = "SELECT * FROM テーブル名 WHERE id IN (".$member_id."); としているのですが、うまくいきません。 どこがおかしいのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 文字例の比較について WHERE句

    文字例の比較について、教えてください。 DELETE_FLAGという項目には、文字列の"1"、もしくはNULLが入っています。 セレクト文でDELETE_FLAGが"1"以外のものを抽出したいのですが、うまくいきません。 以下のSQL文を実行した際に、結果として5件ヒットしてほしいのですが、なぜか0件となってしまいます。 select count(product_id) from hpk_atoz_list_view where delete_flag != '1'; 原因わかりますでしょうか? よろしくお願いいたします。 ============================================================================ SQL> select delete_flag, product_id from product_list_view; DELETE_FLAG product_ID ---------------------------------   0002 1 1003   0002 1 1003   0002 1 1003   0002   0002 8行が選択されました。 SQL> SQL> select count(product_id) from product_list_view where delete_flag != '1'; COUNT(product_id) ---------- 0 SQL> SQL> select count(product_id) from product_list_view where delete_flag = '1'; COUNT(product_id) ---------- 3 SQL> SQL> select count(product_id) from product_list_view where delete_flag is not null; COUNT(product_id) ---------- 3 SQL> SQL> select count(product_id) from product_list_view where delete_flag is null; COUNT(product_id) ---------- 5 SQL> =====以上=====

  • MySQLでのWhere句

    MySQLでWhere句の書き方で苦戦しています。 以下のuser_table(オーダー)が来たときに、スタッフが用意すべき数量を商品ごとに抽出するSQLを書いています。 Where句の書き方が思いつきません。ご指導をお願いいたします。 user_table (name) (product) (user_volume) takada | pro_001 | 500 | takada | pro_002 | 100 | matuda | pro_003 | 400 | kawase | pro_001 | 200 | yosida | pro_001 | 500 | tanaka | pro_001 | 300 | tanaka | pro_002 | 500 | tanaka | pro_003 | 300 | 作りたいテーブル(SQLの結果) total_table (id)(product_name)(total_volume) staff | pro_001 | 1500 | staff | pro_002 | 600 | staff | pro_003 | 700 | 途中まで作って断念したSQL INSERT INTO total_table (id ,product_name,total_volume) SELECT 'staff',product,SUM(user_volume) FROM user_table WHERE ・・・;

    • ベストアンサー
    • MySQL
  • php mysql で WHERE句内に変数を入れる方法を教えてください。

    php初心者です。 お世話にになります。 id  content 1  テキスト1 2  テキスト2 3  テキスト3 4  テキスト4 5  テキスト5 上記のようなデータベースです。 下記の文で5行目のテキストを抽出する事は出来ています。 $query = 'SELECT * FROM tbl_batsu WHERE id = 5'; ランダム整数を生成し、5つの中から一つランダムにデータを抽出したいと考えています。 $num = rand(1, 5); $query = 'SELECT * FROM tbl_batsu WHERE id = $num'; 上記ですとエラーが出てしまいます。 Query failed: Unknown column '$num' in 'where clause' そんなカラムはありませんという意味だとは思いますが・・・ 初心者なもので的外れな質問になっているかも知れませんが、解決策が分かる方は是非ご教授頂ければありがたいです。 よろしくお願いします。

    • 締切済み
    • PHP
  • likeの使い方について

    すみません。教えてください。。 ACCESSで下記2つのテーブルをunionでくっつけて nameの右端(1桁目)が同一のもの(CとCCなど)を抽出するため 下記のような構文を構築したのですが抽出されません。。 お手数ですがこちら何が原因となっているか教えていただけないでしょうか。。 よろしくお願い致します。 id name id name 1 a 1 a 2 b 2 b 3 c 3 cc 4 d 5 ee 5 e select * from (select * from tb1 union select * from tb2) as A where name like '*c' or name like '*d' or name like '*e'

  • Sybase のselect文の書き方について

    sybaseのselect文の書き方についてご教授お願いします。 以下のようなselect文を発行したのですが エラーになってしまいます。 Sybase では、この様なselectはできないのでしょうか? -------------------------------------------------------------- select q2.kind_id, q2.name, q1.id, q1.scription FROM (select * FROM tb_info WHERE tb_info.id = (select id from tb_info where u_id = 'XYZ')) q1 RIGHT JOIN ( SELECT * FROM tb_kind_info WHERE tb_kind_info.flg='1') q2 ON q1.kind_id = q2.kind_id -------------------------------------------------------------- -------------------------------------------------------------- 実行例 1> select q2.kind_id, q2.name, q1.id, q1.scription FROM (select * FROM tb_info WHERE tb_info.id = (select id from tb_info where u_id = 'XYZ')) q1 RIGHT JOIN ( SELECT * FROM tb_kind_info WHERE tb_kind_info.flg='1') q2 ON q1.kind_id = q2.kind_id 2> 3> 4> 5> 6> 7> 8> go Msg 156, Level 15, State 2: Server 'xxxxx', Line 3: キーワード select の近くに、構文エラーがあります。 Msg 102, Level 15, State 1: Server 'xxxxx', Line 3: ')' の近くに、構文エラーがあります。 Msg 102, Level 15, State 1: Server 'xxxxx', Line 5: 'q2' の近くに、構文エラーがあります。 -------------------------------------------------------------- MS Accsess上ではちゃんと取れることを確認できました。 どうぞよろしくお願いいたします。