首页 > 解决方案 > 如何从 Django 中的 sql 中检索分隔符后的子字符串?

问题描述

如何从 Django 中的 sql 中检索分隔符后的子字符串?

例如,我的 sql 数据库中保存了“2021-22:32”。我希望运行一个返回“32”的查询,即分隔符“:”之后的子字符串。

我怎么能在 Django 中做到这一点?

说我的模型是

class model(models.Model):
    str=models.CharField(max_length=25)

建议一个返回所有实体的查询,但具有如上所述的 str 值。

标签: pythonsqlsubstringdjango-ormdelimiter

解决方案


在纯 Python 中,您有以下选项:

inp = "2021-22:32"
output = inp.split(':')[1]         # 32
output = re.sub(r'^.*:', '', inp)  # 32

在 SQL 方面,您可以使用类似的选项,具体取决于您的特定数据库供应商实际上是什么。例如,在 Postgres 上,您可以使用以下SPLIT_PART功能:

SELECT SPLIT_PART('2021-22:32', ':', 2);  -- 32

推荐阅读