2016-02-24 53 views
1

文字字符我有這個表:比較像MySQL

 
|--------------------------|------------------| 
|  tab1    |  tab2   | 
|--------------------------|------------------| 
| Guerreo Reyna   |   1  | 
|--------------------------|------------------| 
| Marroquin Bocanegra  |   10  | 
|--------------------------|------------------| 
| Calderon Salguero  |   10  | 
|--------------------------|------------------| 
| De la Cruz Barrios  | 1,2,3,4  | 
|--------------------------|------------------| 
| Guillen Cornet   |  1,3  | 
|--------------------------|------------------| 
| Luna Mendiví    |   10  | 
|--------------------------|------------------| 
| Chang Ruiz    |   1  | 
|--------------------------|------------------| 

當我做這個查詢:

SELECT DISTINCT f.familias, 
       f.apellidos, 
       i.nombre 
FROM familias AS f 
INNER JOIN integrantes AS i ON f.familias = i.familia 
WHERE tab2 LIKE '%1%' 
    OR tab2 LIKE '%3%' 
ORDER BY 1 

我只需要恢復那些誰擁有1和3,而不是10

非常感謝你

+1

如果您將使用'%1%',則查詢將返回'10',並且只需從您的'WHERE'克勞斯 – Aatman

+0

@ GHOST93中移除'%%'就如同您有這種情況一樣2,1,3 – Maverick2786

回答

0
SELECT DISTINCT f.familias, 
       f.apellidos, 
       i.nombre 
FROM familias AS f 
INNER JOIN integrantes AS i ON f.familias = i.familia 
WHERE find_in_set('1',`tab2`) and find_in_set('3',`tab2`) 
ORDER BY 1 
+0

'標題2'應該被引用。和'10'也應包括在內。 –

+0

這個選項給了我查找數據的問題columan – Maverick2786

+0

@ Maverick2786你說什麼我不明白 – Sadikhasan

0
WHERE concat(',', tab2, ',') LIKE '%,1,%' 
    OR concat(',', tab2, ',') LIKE '%,3,%' 
ORDER BY 1