私は、値がセミコロンで区切られた2つの列AとBを持つテーブルを持っています。Oracle +セミコロンで区切られた列の一致が見つかりました。
- AはBが値
'a;b;d;e'
を持っていた値'a;b;c;d;e'
に存在している場合は私を導いてくださいことを確認したいです。
ありがとうございます!
私は、値がセミコロンで区切られた2つの列AとBを持つテーブルを持っています。Oracle +セミコロンで区切られた列の一致が見つかりました。
'a;b;d;e'
を持っていた値'a;b;c;d;e'
に存在している場合は私を導いてくださいことを確認したいです。
ありがとうございます!
データ構造を修正する必要があります。物のリストを文字列として格納することは、SQLでは非常に悪いことです。リストを格納する適切な方法は、1つのリスト項目につき1つの行を持つ異なるテーブルの行にあります。あなたの例では
は、両方のリストがアルファベット順に並べられます。あなたは、これは常に真であることがわかっている場合、あなたはこのような何かを行うことができます。
select t.*
from t
where t.a like '%' || replace(t.b, ';', '%') || %;
これは、あなたが100%にやりたいことはありませんが、それはあなたの目的のために十分に近いかもしれません。
ダブルバーは連結されています。
SELECT `first_name`||`last_name` FROM users;
あなたはという名前の列取得します: first_name
を|| last_name
だからあなたのクエリwhere t.a like '%' || replace(t.b, ';', '%') || %;
は%a%b%d%e%
思っ
ああ私が参照してください..ありがとう+1 – Alex
は '||' 'OR'を意味
'a;b;d;e'
、出力を取るだろう。しかし、これを組み合わせ*(PHPのドット '.'のようなもの)*として使用したようです。さて、ここで何が起こっているのですか? MySQLでは '||'の意味は何ですか? – Alex@Alex。 。 。質問はOracleを指します。 Oracle(とPostgresとANSI SQLと他のいくつかのデータベース)では、 '||'は文字列を連結します。 MySQLでは、ANSI SQLモードに応じて、論理ORまたは文字列連結のいずれかになります。 –
ああ、私は参照してください... +1 – Alex