次のようなクエリでは、たとえデフォルトであっても、デフォルトは最小のIDから最大のIDの順に返されます。
IN
リストはその順序ではありません。私の状況では、リストはいくつかのc#コードから提供されます。
結果セットを値の順序で並べ替えるにはどうすればよいですか?
IN
リスト?
私が持っているもの:
SELECT * FROM example Where Id in (1,3,2);
returns:
|---------------|---------------|
| id | Value |
|---------------|---------------|
| 1 | example1 |
|---------------|---------------|
| 2 | example2 |
|---------------|---------------|
| 3 | example3 |
|---------------|---------------|
私が欲しいのは:
SELECT * FROM example Where Id in (1,3,2)
Order By "Magic code here";
returns:
|---------------|---------------|
| id | Value |
|---------------|---------------|
| 1 | example1 |
|---------------|---------------|
| 3 | example3 |
|---------------|---------------|
| 2 | example2 |
|---------------|---------------|
回答 1 件
これには2つの方法があります(ここのフィドルを参照)。
テーブルに入力します。
そして「マジックソース」...
結果:
これは非標準のMySQL「トリック」です。
これを行う標準準拠の方法は次のとおりです。
結果:
こちらのPostgreSQLフィドルをご覧ください。 PostgreSQLは(おそらくの)ほとんどの標準準拠のRDBMSシステムが存在するため、比較のために使用しました。
PSフォーラムへようこそ!