次の表をおもちゃの例として考えてみましょう。
id / to / status
1 / スティーブ、ジミー / 0,2
2 / ジョン、ジュリア / 1,2
3 / ジュリア、ペギー / 0,1
「ジュリア」が「to」にあり、対応する「ステータス」が「0」の行を取得したいと思います。
この簡単な例では、行 n°3 です。
このようなクエリを SQL で作成するにはどうすればよいですか?
PS : SQLite を使用しています。
SQLite には、単一の列に埋め込まれたコンマ区切りのリストを操作する組み込み関数は含まれていません。他のデータベースもそうですが、別のコンマ区切り文字列の別の値のインデックスに関連付けられた、あるコンマ区切り文字列から値を取得するという要件に問題がある場合もあります。
これを行うには、2 つの列の値と 2 つの文字列の値を取り、最初の列の最初の値のインデックスを取得し、2 番目の列の同じインデックスから値を抽出し、その値を 2 番目に指定された値と比較します。
一般に、このようなカンマ区切りの文字列はリレーショナル データベースでは使用できません。正直なところ、SQL でこの問題を解決しようとさえしません。データベース構造を正規化できない場合は、コードで実行してください。