如何使用MySQL按照多个id从表中获取值

时间:2017-01-12 10:29:30

标签: php 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的位置,这些值将被提取。我只需要正确的查询。请帮我。

4 个答案:

答案 0 :(得分:0)

如果你当前的代码被用来返回数据库的第一行和第二行,你可以在查询中使用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 - “如果第一个参数包含逗号(”,“)字符,则此函数无法正常工作。

答案 1 :(得分:0)

使用以下查询

可以为你工作

使用LIKE代替" ="

"从db_basic中选择*,其中特别喜欢'%"。$ special。"%'"

答案 2 :(得分:0)

使用FIND_IN_SET函数。 select * from db_basic where FIND_IN_SET(2,special)

答案 3 :(得分:0)

尝试一次,

var webClient = new WebClient();
string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x", NumberFormatInfo.InvariantInfo);
webClient.Headers.Add("Content-Type", "multipart/form-data; boundary=" + boundary);
var fileData = webClient.Encoding.GetString(file);
var package = string.Format("--{0}\r\nContent-Disposition: form-data; name=\"file\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n{3}\r\n--{0}--\r\n", boundary, filename, contentType, fileData);
var nfile = webClient.Encoding.GetBytes(package);
byte[] resp = webClient.UploadData(url, "POST", nfile);

它应该有用。