gpt4 book ai didi

mysql - Django 选择其中字段是字符串和列值的串联

转载 作者:可可西里 更新时间:2023-11-01 07:57:17 24 4
gpt4 key购买 nike

我正在尝试选择一行,其中的字段是字符串和列值的串联。这是我能得到的最接近的:

qs = Report.objects.filter(job=self, persona__identity="u" + F("user__id"))

报告包含字段角色和用户。角色对象包含一个身份字段,该字段是标识符和 ID 的串联。我正在尝试获取角色的身份字符串与报告引用的用户相匹配的所有报告。 (请注意,这些不是我的实际表名......为了保护无辜者,一切都改变了。)

这会产生一个类似的查询,

WHERE (`persona`.`identity` =  u + `report`.`user_id` AND ...

但我真正需要的是类似的东西

WHERE (`persona`.`identity` =  CONCAT("u", `report`.`user_id`) AND ...

有没有办法用 ORM 做到这一点?

最佳答案

您可以使用 extra 在原始 SQL 中定义查找。像这样的东西:

Report.objects.extra({
where=['(`persona`.`identity` = CONCAT("u", `report`.`user_id`)']
})

使用原始 SQL 有一些缺点,例如代码不能跨不同的数据库引擎移植,但对于复杂的查询,它比试图将解决方案硬塞进 ORM 更具表现力。

关于mysql - Django 选择其中字段是字符串和列值的串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7264672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com