2017-07-20 7 views
1

正しい方法でmysqlのクエリを実行できませんでしたは、私のようにDBにデータをしました

結果が SQL Fiddle Hereで見ることができ
| id|title  | exp_level | skill  | company | 
|---|-------------|------------|------------|-----------| 
| 1 |Web Developer| Entry  |Java, PHP |Virtual Inc| 
| 2 |App Developer|Intermediate|Android, iOS|Virtual Inc| 
| 3 |App Developer|Intermediate|Ionic, React|Virtual Inc| 

、[OK]を、今の要件は、もし開発titleと、すべてのジョブのユーザー検索エントリのためのユーザーの検索は、その後levelエントリを持つすべてのジョブは、クエリによって返されるべきというように、私はこのクエリ

を持っている場合 開発者は、クエリによって返されるべき 上記のクエリがうまく機能
SELECT * FROM AVAIL_JOBS WHERE title LIKE '%App Development, Social Marketing%' OR exp_level LIKE '%Entry%' OR skill LIKE '%Java%' OR company LIKE '%App Inc%' 

、結果はSQL Fiddle Hereで見ることができますに、しかし次のクエリ

SELECT * FROM AVAIL_JOBS WHERE title LIKE '%App Development, DB Admin%' OR exp_level LIKE '%Entry, Advanced%' OR skill LIKE '%Java, Spring, Angular%' OR company LIKE '%Inc, Foo, Bar, Lorem%' 

このクエリが入力される「、「アプリケーション」がある場合でも、空の値、ない任意のデータを返します。 "、" Java "はテーブルにありますが、クエリ結果では見つからないものはSQL Fiddle Hereです。

このクエリを上記の値で動作させる方法を教えてください。それらのカンマ区切り文字列の値をテーブルのデータと比較すると、どんなチックですか?

+0

'SELECT * FROM DB WHERE title like LIKE"%developer% "'? – Mako212

+0

質問は__legitimate__のように見えます。 __Disclaimer__私はMySQLの忍者ではありません –

答えて

1

WHERE title LIKE '%App Development, DB Admin%'からWHERE title LIKE '%App Development%' OR title LIKE '%DB Admin%'に変更してください。条件をコンマで区切っても文字列は区切られません。私はそれが正しいことを望む!

+0

また、 'WHERE title IN("%App Development% "、"%DB Admin% ")'私はかなり確信しています – GrumpyCrouton

+0

それは私が直面している問題です値を含むコンマを分離して取得する必要があります。 –

+1

'$ myValue = explode( '、'、$ myValue);を使ってそれらを区切り、それらをループすることができます。あなたは 'explode 'して' WHERE title REGEXP'を使用することもできます。title1 | title2 | title3'' –

関連する問題