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,

   

 

posted @ 2021-11-28 10:58  王纲  阅读(717)  评论(0编辑  收藏  举报