在我的数据库中,我有一个表,时间表,其中一个字段是主题。
它将保持这样的价值。例如。 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/