python - 在 Django 中使用 sql concat() 连接两列

标签 python mysql sql django

假设我在 MySQL 中有一个表 xyz,它包含三列:col1、col2 和 col3(均为 varchar)。我在使用此模型的服务器上使用 python 和 Django。现在我想在 Django ORM 中编写一个表达式,它应该在 MySQL 中产生这个查询:

SELECT * FROM xyz WHERE col3 != CONCAT(col1, col2)

我知道 Django filter/exclude,但比基于固定值而不是列的过滤器:

xyz.objects.exclude(col3='something')

xyz.objects.filter(col3='something')

(PS:我知道如果一列包含来自其他列的冗余信息,这是一个糟糕的表格设计)

最佳答案

Django>=1.8 中,这也是可能的:

from django.db.models.functions import Concat
queryset = xyz.objects.exclude(col3=Concat('col1', 'col2'))

关于python - 在 Django 中使用 sql concat() 连接两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26015009/

相关文章:

SQL-jaccard 相似度

python - 显示嵌套关系的最后一个对象

python - 皮林特 R1720 : Unnecessary "elif" after "raise" (no-else-raise)

python - 值得在嵌套字典上使用sorted(,key=)吗?

mysql - 在 where 子句中选择带有 IF 的记录?

php - Mysql:如何在事务期间锁定整个表?

python - 将 Python 代码与 MySQL 连接时出现回溯错误

php - SQL表中所有价格的总和

php - SQL 表连接

从上周开始的不同时间段的 MySQL 用户事件