MySql 动态条件查询
本文讲述 C++ 单个接口实现MySql 动态条件查询的方法。有这样一个场景:数据库表有A、B、C、D、E
字段,根据入参 决定查询字段中是这5个字段其中一个或是多个(如果入参相关字段对应的变量是空则忽略)。
解决这个问题的关键是借助MySql IF 语句,下面给出基于Poco的示例。
session << "select * from CGAlarmInfo where 1=1 \ and if(?='""',1=1,PlatformId=?)\ and if(?='""',1=1,DeviceId=?) \ and if(?='""',1=1,AlarmName=?) \ and if(?=-1,1=1,AlarmLevel=?) \ and if(?='""',1=1,AlarmTime>=?) \ and if(?='""',1=1,AlarmTime<=?) \ ", into(alarmingInfos), use(alarmSearch.PlatformId), use(alarmSearch.PlatformId), \ use(alarmSearch.DeviceId), use(alarmSearch.DeviceId), \ use(alarmSearch.AlarmName), use(alarmSearch.AlarmName), \ use(alarmSearch.AlarmLevel), use(alarmSearch.AlarmLevel), \ use(alarmSearch.StrStartTime), use(alarmSearch.StrStartTime), \ use(alarmSearch.StrEndTime), use(alarmSearch.StrEndTime), \
如需交流可加QQ群766718184,1038388075 或者QQ3501870,