python 如何使用源生sql语句查询有多个参数过滤的情况
这是python中的一个查询:result_list=list(CrashLog.objects.raw('select*fromoms_crashlogwhere1=1...
这是python 中的一个查询:
result_list = list(CrashLog.objects.raw('select *
from oms_crashlog where 1=1 and (platform="" or platform=%s) and
(platform="" or product=%s)', params=params))
例如网上看到个这样的一个列子:
有选项参数 @age 并要查询 age= @age:
可书写为: and (@age is null or age= @age)
有选项参数 @name 并要查询 name = @name
可书写为: and (@name is null or name = @name)
这是别人的一个问题,我想问的时要是没有选项参数age但是有name,那这个该怎么写,在python中这个@也不能用不知道这个@时什么意思?
(另外我要查询的参数比较多,所以我想问,用你这种sql语句能将各种情况包含吗?能的话,怎么包含?)
网页post进来的数据
platform = request.POST['platform']
product = request.POST['product']
device = request.POST['device']
ip = request.POST['ip'] 展开
result_list = list(CrashLog.objects.raw('select *
from oms_crashlog where 1=1 and (platform="" or platform=%s) and
(platform="" or product=%s)', params=params))
例如网上看到个这样的一个列子:
有选项参数 @age 并要查询 age= @age:
可书写为: and (@age is null or age= @age)
有选项参数 @name 并要查询 name = @name
可书写为: and (@name is null or name = @name)
这是别人的一个问题,我想问的时要是没有选项参数age但是有name,那这个该怎么写,在python中这个@也不能用不知道这个@时什么意思?
(另外我要查询的参数比较多,所以我想问,用你这种sql语句能将各种情况包含吗?能的话,怎么包含?)
网页post进来的数据
platform = request.POST['platform']
product = request.POST['product']
device = request.POST['device']
ip = request.POST['ip'] 展开
展开全部
用django的object就是为了快速开发。所以在设计之初就不允许复杂的查询,复杂的业务逻辑。
如果你设计的复杂,直接用sql,再多复杂都可以支持。
@age这东西是存贮过程里用的吧。这里用不着。
在python里,直接通过格式化字段串,组装成SQL再通过MysqlDb的cursor传递过去,然后fetch就可以了。
你的前面那段代码已经说的很明白了。你先看一看python的基本语法 。
如果你设计的复杂,直接用sql,再多复杂都可以支持。
@age这东西是存贮过程里用的吧。这里用不着。
在python里,直接通过格式化字段串,组装成SQL再通过MysqlDb的cursor传递过去,然后fetch就可以了。
你的前面那段代码已经说的很明白了。你先看一看python的基本语法 。
追问
用cursor得到的是tuple类型,要是想在页面上达到分页,显示效果,还是raw方便,那么现在问题是用raw,也能达到你说的效果吗?之所以不用django的object是因为if else 太多,按我post进来的4条数据打个比方,怎么用一条sql语句写出来?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询