在我的数据库中,我有一个表,时间表,其中一个字段是主题。
它将保持这样的价值。例如。 1,2,3,4

现在,
我需要将此字段与名为我的数组进行比较

$mysubs=array('1','3','5');


我已经试过了。

select * from Timetable  where Subject IN (".implode(',',$mysubs).");


但是,如果我在主题字段中只有一个值,那么它就起作用了。如果它容纳1,2,3,则它不起作用。是否可以使用“ LIKE”进行匹配。请帮我

最佳答案

如果subject字段值用逗号分隔,请尝试类似这样的操作。

$mysubs = array('1','3','5');
$whereSubClause = '';
for($i=0; $i < count($mysubs); $i++){
   $whereSubClause .= 'FIND_IN_SET($i,subject) OR ';
}
// Remove the last OR
$whereSubClasue = substr($whereSubClause,0,-3);
// now query
select * from Timetable  where $whereSubClause;


但是,如果不是逗号分隔,请执行以下操作:

$values = implode("','",$mysubs);
"select * from Timetable where subject IN('".$values."');"

关于php - 用数组选择mysql中的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37112371/

10-11 03:16