首页 > 解决方案 > 列上的 Django ORM 查询集子字符串

问题描述

考虑下面 mysql 表 Employee 中的列。

emp_number
4-PQR-A111
3-MNO-333
2-DEF-222
1-ABC-111

我需要为下面的 mysql 查询编写 django orm 查询,该查询在 emp_number 列上按“-”拆分并与最后一个索引匹配。

SELECT * from Employee WHERE substring_index(emp_number, '-', -1) = '111';

我不能在下面的列上写结尾:

Employee.objects.filter(emp_number__endswith='111').values('emp_number')

这将返回低于 2 条记录,我预计只有一条记录。

4-PQR-A111
1-ABC-111

任何帮助,将不胜感激。谢谢。

标签: djangodjango-orm

解决方案


怎么样Employee.objects.filter(emp_number__endswith='-111').values('emp_number')

或者

您可以使用Employee.objects.filter(emp_number__endswith='-{}'.format(end_number)).values('emp_number')whereend_number是您期望员工编号应以结尾的值。


推荐阅读