2016-01-11 38 views
-1

我叫公司 MySQL表低於如何從Mysql逗號分隔值中選擇?

id--username---countries 

1---taner--------1,2,3 
2---tom----------2,3 
3---Jack---------1,3 
4---Jenny--------1 

我有一個表格,我張貼的國家從它。

<select name="country" > 
<option value="1" >Turkey</option> 
<option value="2" >England</option> 
<option value="3" >USA</option> 
</select> 

而當我發佈表單並獲得國家的POST值。

$country=$_POST['country']; 
SELECT * FROM company where country='$country'; 
.............................. 

我的目標是獲取此查詢並列出數據屬於崗位價值,如果英格蘭隊選用攤兒和湯姆必須列出becuse英格蘭的選項值爲2,在我的數據庫只有湯姆和攤兒包含這個國家的價值。

那麼,有什麼建議?

+2

我的建議將**從不**在一列中存儲逗號分隔值*。 –

+0

您需要更好地規範化數據。將CSV列表存儲在數據列中可能非常有問題。 –

+0

良好的建議,但現在我必須快速解決這個問題,並且像%%爲我工作 – Bagova

回答

1

您可以使用Pattern Matching外卡運營商要做到這一點

SELECT * FROM company where country LIKE '%$country%'; 

希望這項工作。但根據VR46,不建議在列中使用逗號分隔值。

5

使用MySQL的FIND_IN_SET()功能。

這裏的參考:

所以您的查詢應該是這樣的:

$query = "SELECT * FROM company WHERE FIND_IN_SET('$country', country)"; 
1

您可以使用MySQL的LIKE能力:

SELECT * FROM company WHERE country LIKE '%$country%';