Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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
Sql server ORM中的SQL函数_Sql Server_Django_Django Orm - Fatal编程技术网

Sql server ORM中的SQL函数

Sql server ORM中的SQL函数,sql-server,django,django-orm,Sql Server,Django,Django Orm,我有SQL Server、FreeTDS、Django 1.5.5。对于SQL Server的全文搜索,我需要使用SQL Server的contains功能 这将在my_表的x_名称字段中搜索“mytext” select x_name from my_table where contains(x_name, 'mytext') 对于使用ORM执行此操作,有djorm ext表达式 如果sql函数只有一个参数,但包含两个参数:字段名和文本,那么这很好 它生成Sql的Where语句,如下所示:

我有SQL Server、FreeTDS、Django 1.5.5。对于SQL Server的全文搜索,我需要使用SQL Server的contains功能

这将在my_表的x_名称字段中搜索“mytext”

select x_name from my_table where contains(x_name, 'mytext')
对于使用ORM执行此操作,有djorm ext表达式

如果sql函数只有一个参数,但包含两个参数:字段名和文本,那么这很好

它生成Sql的Where语句,如下所示:

MyTable.objects.where(Contains("x_name", "mytext"))
               .query.get_compiler("default").as_sql()
WHERE (contains("x_name", 'mytext'))
输出:

WHERE (contains("x_name"))', ('mytext',))
但它的输出应该是这样的:

MyTable.objects.where(Contains("x_name", "mytext"))
               .query.get_compiler("default").as_sql()
WHERE (contains("x_name", 'mytext'))

有人知道如何修复吗?

我已经解决了这个问题:

MyTable.objects.where(RawExpression("contains(x_name, %s)", 'mytext'))

这看起来像是ORM中的一个bug。为此,我使用原始sql,但ORM会更好更安全。