1. 程式人生 > 其它 >MySql 動態條件查詢

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,