2017-07-20 44 views
1

我在DB已經數據不能以正確的方式執行MySQL查詢

| 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| 

結果可以在SQL Fiddle Here可以看出,好了,現在的要求是,如果開發商然後所有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「%developer%」'? – Mako212

+0

這個問題看起來__legitimate__,爲什麼選擇down表決任何解釋? __Disclaimer__我不是MySQL的忍者 –

回答

1

變化WHERE title LIKE '%App Development, DB Admin%'變爲WHERE title LIKE '%App Development%' OR title LIKE '%DB Admin%'。在LIKE條件中輸入逗號不會分隔字符串。我希望我明白了!

+0

或者你可以做'WHERE標題IN(「%App Development%」,「%DB Admin%」)'我很確定 – GrumpyCrouton

+0

這就是我面臨的問題,我必須將包含值的逗號分隔開並獲得響應 –

+1

您可以使用'$ myValue = explode(',',$ myValue);'將它們分開,並能夠遍歷它們。你也可以'爆炸'他們,並使用'WHERE標題REGEXP'title1 | title2 | title3'' –