假设我在 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/