在mysql中 IF() 函数的用法类似于java中的三目表达式,其用处也比较多,具体语法如下:
IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值
"WHERE sm.`is_del` = FALSE AND sm.`is_disable` = FALSE " +
"AND IF(100=?3,''='',csm.`push_state` = ?3)" +
"AND sm.`sale_price` >= ?4 " +
"AND sm.`sale_price` <= ?5 " +
"AND IF(''=?6,''='',sm.code = ?6)" +
"AND sm.name LIKE ?7 " +
"AND IF(''=?8,''='',sm.`fit_sex` = ?8)"+
"ORDER BY csm.`updated_at` DESC,sm.`updated_at` DESC " +
"limit ?9,?10
例如:
100 = ?3 为true,则SQL为: AND''=''; 为假,则SQL 为 : AND csm.`push_state` = ?3