2017-01-12 61 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); 

它应该工作。

相关问题