如何在Laravel中的orderBy函数中使用substr()

时间:2015-01-09 20:48:07

标签: php jquery laravel laravel-4

美好的一天,

我需要在laravel中使用“orderBy”函数对结果进行排序,但不幸的是我想要使用的那列中的值在实际数字之前有“j1_”。所以我想首先删除前3个字符但是我试过的时候

orderBy(substr('x_fs_format_details.tree_xid', 3))

它给我一个“未找到列”错误。

有没有办法调整这个?感谢。

1 个答案:

答案 0 :(得分:3)

我假设您使用MYSQL(其他数据库的子字符串函数可能不同)

您可以动态制作新字段:

$query->selectRaw('*, SUBSTR(x_fs_format_details.tree_xid, 3) AS substr_tree_xid')
      ->orderBy('substr_tree_xid')->get();

这样做的优点/缺点是SUBSTR的结果将出现在您的结果中。如果您不想要,也可以直接在订单中使用SUBSTR

$query->orderByRaw('SUBSTR(x_fs_format_details.tree_xid, 3)')->get();