Django QuerySet:按“值类似列”筛选

2024-04-25 17:03:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个SQL查询来确定匹配给定输入字符串的最长匹配前缀。用例是查找调用给定目标的速率,这由数据库中的多行决定。最具体的匹配前缀就是要使用的前缀。在

所以在原始SQL中,它看起来像这样:

SELECT * FROM rateplan_rates
WHERE '3212345789' LIKE CONCAT(prefix, '%')
ORDER BY CHAR_LENGTH(prefix) DESC LIMIT 1

在上面的例子中,目的地是3212345789。在实际的应用程序中,这是由缓存机制和其他东西支持的,但归根结底就是这样。在

我想在我们的Django项目中实现同样的API调用,我知道我也可以在那里使用原始SQL,但是我想知道在Django“queryset语言”中是否有一种方法可以做到。在

我一直在想:

^{pr2}$

缺少的部分当然是search_value LIKE prefix_match。这是可能的还是我应该回到原始SQL?在


Tags: django字符串from数据库目标sqlprefix速率