4

これはばかげているように思えるかもしれませんが、私はプロジェクト用の個別のテーブルがない古いシステムで作業しています。このようなテーブルがあります。

|        PROJECTNAME | EMPID |
|--------------------|-------|
|     casio calc new |     1 |
|           calc new |     2 |
|               tech |     3 |
| financial calc new |     4 |
|              casio |     5 |

ここで、上の表から EmpID を選択します。ここで、ProjectName は casio または calc のいずれかです。また、 のような複数選択用のユーザー入力がありますcasio, calc。ユーザーが入力した場合、casio, calcそれが見つかるはずであることを意味しますProjectName LIKE '%casio%' OR '%calc%'

どうすればこれが可能になるのか、私にはまったくわかりません。

SELECT * FROM ProjectDetails
WHERE ProjectName LIKE 'casio, calc';

SQL LIKE を IN で検索しましたが、解決策が見つかりませんでした。どうすればこれを達成できるか考えている人はいますか? または、使用する他のアプローチはありますか?私はこのフィドルでこれを試しています。

4

4 に答える 4

1

like はカンマ区切りの値を除外しません。渡された値ごとに or 条件を動的に追加する必要があります。

次の形式である必要があります。

ProjectName Like'%param1%' OR ProjectName Like '%param2%'
于 2014-07-11T13:24:02.607 に答える
1

LIKE解決策は、いくつかの条件を使用することです。

SELECT *
FROM ProjectDetails
WHERE ProjectName LIKE '%casio%'
OR ProjectName LIKE '%calc%';
于 2014-07-11T13:22:01.927 に答える