ホームページ >データベース >mysql チュートリアル >PostgreSQL で MySQL の ORDER BY FIELD() をシミュレートするにはどうすればよいですか?
PostgreSQL での MySQL の ORDER BY FIELD() のシミュレーション: SQL 互換性のためのソリューション
MySQL から PostgreSQL に移行するとき、開発者はよく次のような問題に遭遇します。 ORDER BY FIELD() 関数など、特定の MySQL 固有の機能が存在しない。この関数を使用すると、指定されたフィールドの順序に基づいて並べ替えをカスタマイズできます。
MySQL からのユーザーにとって、これは重大な課題になる可能性があります。 PostgreSQL の ORDER BY FIELD() の動作をシミュレートするには、CASE 式を使用した回避策を使用できます。
シミュレーション テクニック
CASE 式は条件文を提供します。フィールドの値に基づいて各行に優先順位を割り当てます。各値に異なる優先順位を希望の順序で割り当てることで、それに応じて行を並べ替えることができます。
次の例を考えてみましょう。
SELECT * FROM currency_codes ORDER BY CASE WHEN code='USD' THEN 1 WHEN code='CAD' THEN 2 WHEN code='AUD' THEN 3 WHEN code='BBD' THEN 4 WHEN code='EUR' THEN 5 WHEN code='GBP' THEN 6 ELSE 7 END, name; This SQL query will simulate the result of the MySQL `ORDER BY FIELD()` query provided:
SELECT * FROM 通貨コード ORDER BY FIELD(code, 'GBP'、'EUR'、'BBD'、'AUD'、'CAD'、'USD') DESC、名前ASC
利点
追加のヒント
この回避策により、PostgreSQL ユーザーは MySQL の ORDER BY FIELD() によって提供されるのと同じカスタマイズされた並べ替え機能を実現でき、データベース移行中に発生する可能性のある互換性の問題を軽減できます。
以上がPostgreSQL で MySQL の ORDER BY FIELD() をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。