我正在开发一个Web服务,其中一个参数是设备ID列表(energy_mon_id)。该列表以逗号分隔,例如0,1,2(其他两个参数是dateFrom和dateTo)。
我准备好的陈述如下:
$this->sql = "SELECT $vars FROM $table "
. "WHERE energy_mon_id IN(:energy_mon_id) AND CONCAT(date, ' ', time) "
. "BETWEEN :dateFrom AND :dateTo "
. "$group ORDER BY $orderBy $limit";
问题在于,不是将它们识别为单独的逗号分隔字符,而是将其解释为完整的字符串(我认为)。我试图遵循这个post
我已经四处寻找并找到了完全相同的解决方案(除了我之外,它似乎对其他所有人都有用)。我很困惑,从来没有必须自己直接问一个问题,所以这是我的第一篇文章!
感谢您的帮助。
答案 0 :(得分:1)
感谢您的评论,他们向我指出了一个合适的帖子。但是,为了简化可能存在类似问题的任何人,这个简单的修复工作......
而不是使用:
WHERE energy_mon_id IN(:energy_mon_id)
我用过:
WHERE find_in_set(energy_mon_id, :energy_mon_id)