django - 列上的 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
任何帮助,将不胜感激。谢谢。
解决方案
怎么样Employee.objects.filter(emp_number__endswith='-111').values('emp_number')
?
或者
您可以使用Employee.objects.filter(emp_number__endswith='-{}'.format(end_number)).values('emp_number')
whereend_number
是您期望员工编号应以结尾的值。
推荐阅读
- pandas - 使用日期时间索引切片数据获取 emty 数据框
- android - 在 ViewPager 中暂停的片段不接收 LiveData 事件
- css - 为什么 Boostrap 4.4.1 媒体查询不起作用?
- python - 未找到添加到 virtualenv 'activate' 脚本的环境变量(mac)
- javascript - InfiniteCalendar 中 onSelect 的事件处理程序
- angularjs - 使用 AngularJS 在模态对话框中使用模板
- node.js - 在 linux 上运行 nfc-pcsc 示例不会触发任何事件
- colors - 如何更改拾轮器线条的颜色和粗细?(斯威夫特用户界面)
- android - 如何在没有 IV(初始化向量)的情况下使用 Cipher
- php - 如何在 php 的 preg_match_all() 中添加印地语字符搜索?