列上的 Django ORM 查询集子字符串

Django ORM queryset substring on a column

请考虑以下列中 mysql table 员工。

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')

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

4-PQR-A111
1-ABC-111

如有任何帮助,我们将不胜感激。谢谢

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

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