SQL Serverカンマ文字列で検索する必要があります。例えばSQL Serverのカンマ文字列で検索
:
カラムtype
の値"A, C, T"
を有しており、ユーザがアプリ値"M, T"
通過します。
少なくともM
、T
、またはその両方を含むすべての行を返す必要があります。この場合、A, C, T
を返す必要があります。
SQL Serverカンマ文字列で検索する必要があります。例えばSQL Serverのカンマ文字列で検索
:
カラムtype
の値"A, C, T"
を有しており、ユーザがアプリ値"M, T"
通過します。
少なくともM
、T
、またはその両方を含むすべての行を返す必要があります。この場合、A, C, T
を返す必要があります。
正しい解決策は、1行につき1つのtype
というデータ構造を修正することです。複数の値を1つの列に格納しないでください。
しかし、時には他の人の悪い設計の決定に悩まされています。あなたはこれを解決するためにlike
を使用することができます。
where ', ' + type + ', ' like '%, M, %' or
', ' + type + ', ' like '%, T, %'
ここにトリックは、彼らがtype
の開始または終了しているとき、「M」と「T」はまた、発見されるように、type
ラウンドコンマをラップすることです。
ありがとう!それは非常に古いデータベースであり、構造を変更することはできません。私は最高のソリューションは、タイプ別に列になるだろうと思うが... :) –
コンマ区切りのアイテムとしてデータを保存しないでください。それはあなたに多くのトラブルを引き起こすだけです。 – jarlh
あなたの価値を最初に分けて(http://stackoverflow.com/questions/10581772/how-to-split-a-comma-separated-value-to-columns)それを比較してください – Prisoner