
No.4ベストアンサー
- 回答日時:
>FIELDの商品コードを'で囲んだところ、
>エラーは出なくなりましたが並び替えは上手くいきませんでした。
「'」(アポストロフィー)で囲んでしまうと、文字定数となるので、FIELD関数は正しく動作しません。
予約語と同じキーワードを使う場合は、「`」(バッククォート)を使いますが、今回は日本語の列名ということで該当しません。
MySQL 5.0では、下記SQLで動作しました。
SELECT 商品コード,商品名
FROM 商品マスタ
WHERE 商品コード IN (5,7,3)
ORDER BY FIELD(商品コード,5,7,3);
マニュアルを見る限り、FIELD関数は昔からあるようです。#2回答者さんへのお礼にある「使えなかった」とは、具体的にどうなるのでしょうか?
下記のSQL例のように、CASEでも同様の結果を得られます。
SELECT 商品コード,商品名
FROM 商品マスタ
WHERE 商品コード IN (5,7,3)
ORDER BY CASE 商品コード WHEN 5 THEN 1 WHEN 7 THEN 2 WHEN 3 THEN 3 END;
なお、ORDER BYで列名でなく式を指定した場合、インデクスを使ったソート抑止は行えませんので注意してください。
→商品コードで絞り込んだ後なので、今回は問題ないとも思いますけどね。
構文エラーが出ていたのですが、
今再確認したところ無事に動作しました。
私のミスだったみたいです。
申し訳ありません。
詳細な説明をありがとうございました。
No.3
- 回答日時:
MySQLのバージョンは?
表名は、「TABLE」なのですか?そうすると、「`」で囲まないと、予約語で構文エラーになると思いますが?
select `id`,`name`
from `table`
where `id` in(5,7,3)
order by field(`id`,5,7,3);
この回答への補足
SELECT 商品コード,商品名
FROM 商品マスタ
WHERE 商品コード IN (5,7,3)
ORDER BY FIELD('商品コード',5,7,3);
実際には↑こうです。
FIELDの商品コードを'で囲んだところ、
エラーは出なくなりましたが並び替えは上手くいきませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Excel(エクセル) Excel 郵便番号順に並び変えたい 同じ番号が複数あるとき 4 2022/04/28 18:35
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- その他(Microsoft Office) 逆順 3 2023/08/24 09:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
select文のwhere句に配列を入れ...
-
エクセルの関数について教えて...
-
エクセルで最後の文字だけ置き...
-
VIEWの元のテーブルのindexって...
-
SQL Left Join で重複を排除す...
-
SQLサーバから、項目の属性(型...
-
Access パラメータクエリをcsv...
-
1テーブル&複数レコードの更新...
-
複数JOINしているとCOUNTが正し...
-
エラー 1068 (42000): 複数の主...
-
バインド変数について
-
MySQLのint型で001と表示する方...
-
キー毎の、ある列のmaxのレコー...
-
複数のテーブルの重複データを...
-
複数テーブルのGROUP BY の使い...
-
updateを1行ずつ実行したい。
-
mysqlのdeleteのサブクエリーで...
-
項目の値を全部消すには?
-
マイクラPC版のコマンドで効率...
-
PL/SQLの変数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
select文のwhere句に配列を入れ...
-
VIEWの元のテーブルのindexって...
-
エラー 1068 (42000): 複数の主...
-
SQLにて特定の文字を除いた検索...
-
【Transact-sql】 execの結果を...
-
マイクラPC版のコマンドで効率...
-
SQL Left Join で重複を排除す...
-
sqlで、600行あるテーブルを100...
-
複数テーブルのGROUP BY の使い...
-
WordpressのContact form 7でzi...
-
クエリ表示と、ADOで抽出したレ...
-
SQLサーバから、項目の属性(型...
-
selectした大量データをinsert...
-
Access パラメータクエリをcsv...
-
副問合せの書き方について
-
inner joinをすると数がおかし...
-
insertを高速化させたい
-
[MySQL] 3つのテーブルの結合で...
おすすめ情報