特定の値を持つカンマ区切りの列値のクエリ
列にカテゴリを表すカンマ区切りの値が含まれるテーブルでは、特定のカテゴリの存在に基づいて行を取得する必要がある場合。 LIKE ステートメントを使用するだけで十分ですが、効率と精度について懸念があります。
FIND_IN_SET() 関数は、Oracle のドキュメントに記載されていますが、10g バージョンではサポートされていません。したがって、カンマ区切りの列値を効果的にクエリするには、別のアプローチが必要です。
部分一致とカンマを考慮して変更を加えた LIKE を使用するソリューションは次のとおりです。
select * from YourTable where ',' || CommaSeparatedValueColumn || ',' LIKE '%,SearchValue,%'
ただし、このクエリは LIKE の使用によりパフォーマンスの問題の影響を受けやすくなります。さらに、値にはスペースやカンマが含まれていないことを前提としていますが、常にそうであるとは限りません。
これらの制限を軽減するには、より効率的で信頼性の高い解決策は、カテゴリの子テーブルを導入してテーブルを再構築することです。メインテーブルとの関係を確立するためのクロスリンクテーブル。このアプローチにより、特定の値を使用してカンマ区切りの列値をクエリする際のパフォーマンスと精度が向上します。
以上がOracle 10g で特定の値についてカンマ区切りの列値を効率的にクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。