2017-01-12 89 views
0

我需要一個幫助。我需要從多個ID中獲取表值,這些ID使用MySQL以逗號分隔的字符串。我在下面解釋我的表格和查詢。如何使用MySQL從多個ID獲取表中的值

db_basic:

id  special   name 

1  2,3,4,5   Raj 


2  4,2,5,6   Rahul 

3  3,5,6    Rocky 

我的代碼如下。

$special=2; 
$qry=mysqli_query($connect,"select * from db_basic where special='".$special."'"); 

在這裏,我需要其中special=2存在該逗號分隔的字符串的那些值將獲取的內部。我只需要適當的查詢。請幫幫我。

+0

你應該規範你的數據庫並保存在另一個表中的特殊列,這樣你就可以實現你想要的子查詢,但在你的情況下看看http://stackoverflow.com/questions/5033047/mysql-query-finding -values-in-a-comma-separated-string –

+1

嘗試使用'LIKE'運算符 –

+0

[MySQL查詢在逗號分隔字符串中查找值]的可能重複(http://stackoverflow.com/questions/5033047/mysql- query-finding-values-in-a-comma-separated-string) – GilZ

回答

0

如果你expeted來回報您的分貝的第一和第二行目前的代碼,你可以使用LIKE運營商在查詢這樣的:

$special=2; 
$qry=mysqli_query($connect,"select * from db_basic where special LIKE '%,".$special.",%'"); 

LOCATE,如:

$special=2; 
$qry=mysqli_query($connect,"select * from db_basic where LOCATE(".$special.",special)>0"); 

FIND_IN_SET:從docco here - 「如果第一個參數包含逗號(」,「)字符,則此函數無法正常工作。

+0

@ MacBooc:這個'LIKE'%,「。$ special。」',%'是拋出錯誤。這裏有一個,與%一起出現。 – subhra

+0

我編輯過,%在報價中 – MacBooc

0

下面的查詢使用

可能對ü

使用像的工作,而不是 「=」

「選擇db_basic *如有特殊LIKE '%」。$特殊。 「%'」

0

對前例使用FIND_IN_SET函數。 SELECT * FROM db_basic其中FIND_IN_SET(2,特殊)

0

試試這一次,

select * from db_basic where FIND_IN_SET($special, special); 

它應該工作。

相關問題