Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Django:使用变量名而不是%s_Mysql_Django_Django Models - Fatal编程技术网

Mysql Django:使用变量名而不是%s

Mysql Django:使用变量名而不是%s,mysql,django,django-models,Mysql,Django,Django Models,Im将多个参数传递到原始sql语句中,对于每个参数,Im使用%s 是否可以使用变量名而不是多个%s 例如: man = "John" wife = "Jane" query = "SELECT * FROM person WHERE name = %s and wife = %s" cursor.execute(query, [man, wife]) 您正在查询的是一个模型吗 看文件解释 raw自动将查询中的字段映射到模型上的字段 这应该简单到: Person.objects.raw('SEL

Im将多个参数传递到原始sql语句中,对于每个参数,Im使用%s 是否可以使用变量名而不是多个%s

例如:

man = "John"
wife = "Jane"
query = "SELECT * FROM person WHERE name = %s and wife = %s"
cursor.execute(query, [man, wife])

您正在查询的是一个模型吗

看文件解释

raw自动将查询中的字段映射到模型上的字段

这应该简单到:

Person.objects.raw('SELECT id, first_name, last_name, birth_date FROM myapp_person')

DB API 2.0定义了以下参数样式

“qmark”问号样式, e、 g.“…其中name=?” “数字”数字、位置样式, e、 g.“…其中name=:1” “命名”命名样式, e、 g.“…其中name=:name” “格式”ANSI C printf格式代码, e、 g.“…其中名称=%s” “pyformat”Python扩展格式代码, e、 g.“…其中name=%names”
现在,并非所有数据库都实现了所有这些功能。检查您使用的数据库引擎是否支持pyformat。

如果您使用的是原始数据库API,我真的不明白为什么它与Django相关。我查询的表包含数十万行。为了提高效率,我想更具体地回答我的问题。有什么想法吗?而且我正在处理一些数据库,其中一些不适合Django模型,所以我直接查询数据库