如何在不使用PHP String函数的情况下在Laravel 5中编写MySQL查询?

时间:2016-09-06 06:04:10

标签: php mysql laravel laravel-5 laravel-5.1

我需要在从数据库获取值时默认消除字符串的特定前缀。

在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字符串函数

仅限直接雄辩的操作。

提前致谢!

2 个答案:

答案 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%");

请记住子字符串很慢。