|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
flask 执行原生sql 如果怎么做到如果值为空就不执行这个筛选条件
例如 mysql 的
set @a = ;
if(@a is null , 0=0,find_in_set (a,@a))
flask 的原生语句该怎么写?
如果这样写的话 excel = db.session.execute(f"select id from td_kids_writeoff_record where if('{store}' is null , 0=0, store_id in '{store}')").all()
如果换一种写法excel = db.session.execute(f"select id from td_kids_writeoff_record where (store_id in '{store}' or '{store}' = '')").all()
都会变成类似这个样子
select id from td_kids_writeoff_record where if('None' is null , 0=0, store_id in 'None')
不知道为什么不会跳转到 0=0 直接变成 store_id in('none') 了 也就意味着什么都筛不出来
如果{}外面不加引号就会报错 因为我要写的原生sql 关联三个查询语句,用orm太麻烦了
也尝试过把set @store = ;单独在前面执行,但是不行,不论是加到原生sql里面,还是在前面执行
不想写拼接感觉好麻烦,大佬能支个招吗 |
|