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

Php 如何在Laravel中的orderBy函数中使用substr(),php,jquery,laravel,laravel-4,Php,Jquery,Laravel,Laravel 4,你好 我需要使用laravel中的“orderBy”函数对结果进行排序,但不幸的是,我要使用的列中的值在实际数字之前有“j1”。。所以我想先删除前3个字符,但是当我尝试 orderBy(substr('x_fs_format_details.tree_xid', 3)) 它给我一个“未找到列”错误 有没有办法调整这个?谢谢。我假设您使用MYSQL(子字符串函数在其他数据库上可能不同) 您可以动态创建一个新字段: $query->selectRaw('*, SUBSTR(x_fs_form

你好

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

orderBy(substr('x_fs_format_details.tree_xid', 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();

我假设您使用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();

我假设您使用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();

我假设您使用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();


您需要一个内置的SGBD函数来实现这一点。你的SGBD是什么?你确定你有一个名为's_format_details.tree_xid'的列吗?他的意思是调用
substr('x_fs_format_details.tree_xid',3)
返回
s_format_details.tree_xid
。。。我怀疑你有一个叫它的colunm。这不可能用Elounce的
orderBy
做到。据我所知,你想要对字符串列进行数字排序。是的@YAAK我也在考虑同样的问题。。也许我只是想找一些方法来实现这一点,你需要一个内置的SGBD函数来实现这一点。你的SGBD是什么?你确定你有一个名为's_format_details.tree_xid'的列吗?他的意思是调用
substr('x_fs_format_details.tree_xid',3)
返回
s_format_details.tree_xid
。。。我怀疑你有一个叫它的colunm。这不可能用Elounce的
orderBy
做到。据我所知,你想要对字符串列进行数字排序。是的@YAAK我也在考虑同样的问题。。也许我只是想找一些方法来实现这一点,你需要一个内置的SGBD函数来实现这一点。你的SGBD是什么?你确定你有一个名为's_format_details.tree_xid'的列吗?他的意思是调用
substr('x_fs_format_details.tree_xid',3)
返回
s_format_details.tree_xid
。。。我怀疑你有一个叫它的colunm。这不可能用Elounce的
orderBy
做到。据我所知,你想要对字符串列进行数字排序。是的@YAAK我也在考虑同样的问题。。也许我只是想找一些方法来实现这一点,你需要一个内置的SGBD函数来实现这一点。你的SGBD是什么?你确定你有一个名为's_format_details.tree_xid'的列吗?他的意思是调用
substr('x_fs_format_details.tree_xid',3)
返回
s_format_details.tree_xid
。。。我怀疑你有一个叫它的colunm。这不可能用Elounce的
orderBy
做到。据我所知,你想要对字符串列进行数字排序。是的@YAAK我也在考虑同样的问题。。也许我只是想寻找一些方法来实现这一点,也可以使用
Model::orderByRaw('SUBSTR(x_fs_format_details.tree_xid,3)->get()来实现这一点。如果您的结果中不需要这些额外数据,则可以进行清理。也可以使用
Model::orderByRaw('SUBSTR(x_fs_format_details.tree_xid,3)->get()实现此目的。如果您的结果中不需要这些额外数据,则可以进行清理。也可以使用
Model::orderByRaw('SUBSTR(x_fs_format_details.tree_xid,3)->get()实现此目的。如果您的结果中不需要这些额外数据,则可以进行清理。也可以使用
Model::orderByRaw('SUBSTR(x_fs_format_details.tree_xid,3)->get()实现此目的。如果您在结果中不需要这些额外数据,请使用Cleaner。