mysql - 在过滤掉非数字字符的同时查询字段 - Laravel
问题描述
我正处于决定如何格式化特定字段的十字路口。
标识符改变了它的document
格式,所以我试图找到查询数据库表的最佳方法(如果有的话)。
假设我放入了一组新格式化的标识符,但它们以旧方式存储在数据库中。
我会输入
31120313
31146631
31256061
但在数据库中,它目前看起来像
3112031-3
3114663-1
3125606-1
我对建议持开放态度,因为它相当令人恼火,而且我以前没有想过需要这样的东西。
谢谢
解决方案
假设您有一个Document
模型,您可以使用 therewhere()
方法基于更改的值来复制先前的标识符的记录:
$value = substr_replace($str, '-', -1, 0);
Document::where('indentifier', $value)->first();
在这里,我们使用substr_replace
在最后一个字符之前插入一个连字符来根据旧标识符查找记录。