我需要在从数据库获取值时默认消除字符串的特定前缀。
在MySQL中,我可以使用以下内容,
SELECT RIGHT('abc3',1) -- Results in "3"
SELECT RIGHT('abc3',2) -- Results in "c3"
但是,我如何在Laravel雄辩中使用相同的过程?。
或者任何其他解决方案可用于在laravel中从数据库检索时删除字符串的前缀。
我知道修剪会消除,但只有空格。
ex.
property_color
property_size
我需要提取“属性_ ”。
expect.
color
size
是否可以在laravel中,不使用PHP字符串函数。
仅限直接雄辩的操作。
提前致谢!
答案 0 :(得分:0)
这就是我要做的事情:
DB::select(DB::raw(" SQL QUERY "),$paramsArray);
您可以传递参数数组来绑定值:
public static String getPrefix(String serial) {
StringBuilder prefix = new StringBuilder();
for(char c : serial.toCharArray()){
if(Character.isDigit(c)){
break;
}
else{
prefix.append(c);
}
}
return prefix.toString();
}
答案 1 :(得分:0)
您必须在构建器中使用原始查询,例如
$results = YourRepo::where(DB::raw("SELECT SUBSTRING('property_color',9)") , 'LIKE', "%property_xxx%");
请记住子字符串很慢。