Php 使用数组与数组比较时如何选择数据库MySQL?
使用数组与数组比较时如何选择数据库MySQLPhp 使用数组与数组比较时如何选择数据库MySQL?,php,mysql,Php,Mysql,使用数组与数组比较时如何选择数据库MySQL $num = array("1","6","20"); 表:测试数据库 ___________________________ | id | number | | 1 | "1","2","3","4","5" | | 2 | "7","8","9" | | 3 | "10","20","30" | | 4 | "6","8","20" | 我想从表中选择数据:
$num = array("1","6","20");
表:测试数据库
___________________________
| id | number |
| 1 | "1","2","3","4","5" |
| 2 | "7","8","9" |
| 3 | "10","20","30" |
| 4 | "6","8","20" |
我想从表中选择数据:test_db like
完成后,我将得到结果id 1、3和4
因为在id 1中有1
在id 3中有20个
在id 4中有6和20
如何从数据库中进行选择
谢谢。您的数据库模式非常糟糕,此外,您正在使用双引号保存逗号分隔的值。您应该规范化该表并使其成为一对多关系。但是,在当前情况下,您需要动态生成查询,因为find_in_set只能用于搜索集合中的一个值。这里有一个你可以尝试的方法
$num = array("1","6","20");
$qry = "select * from test_db";
$i = 1 ;
if(is_array($num) && count($num) > 0 ){
$qry .= " where ";
foreach($num as $num){
if($i == 1 ){
$qry .= " find_in_set(".$num.",replace(number,'\"','') ) ";
}else{
$qry .= " OR find_in_set(".$num.",replace(number,'\"','') ) ";
}
$i++;
}
}
// Finally execute the query in variable $qry
测试数据库选项卡中数字的数据类型是什么?--teo列数字类型textfind\u in\u set只能用于搜索一个字符串而不是数组。您可以使用输入数组值生成动态查询以实现它。了解数据库规范化。这正是为什么不在单个列中存储数组的原因。在这里,两个表之间应该有一对多的关系。谢谢,我将进行测试,然后我会回来告诉您发生了什么。
$num = array("1","6","20");
$qry = "select * from test_db";
$i = 1 ;
if(is_array($num) && count($num) > 0 ){
$qry .= " where ";
foreach($num as $num){
if($i == 1 ){
$qry .= " find_in_set(".$num.",replace(number,'\"','') ) ";
}else{
$qry .= " OR find_in_set(".$num.",replace(number,'\"','') ) ";
}
$i++;
}
}
// Finally execute the query in variable $qry