Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我想在where()之后使用orderBy()和take(),但它的查询正好与我想要的答案相反_Php_Mysql_Laravel - Fatal编程技术网

Php 我想在where()之后使用orderBy()和take(),但它的查询正好与我想要的答案相反

Php 我想在where()之后使用orderBy()和take(),但它的查询正好与我想要的答案相反,php,mysql,laravel,Php,Mysql,Laravel,让我们假设一个事件表,我想得到在当前日期之后举行的第一个最新事件,我按事件开始日期排序 但它正在查询第一个orderBy,然后对其执行运行条件 EVENT::where(Event::START_DATE, '>', 'CURDATE()')->orderBy(Event::START_DATE)->take($nThEvent)->get()->toArray(); 这对你有用吗 EVENT::where(Event::START_DATE, '>', '

让我们假设一个
事件
表,我想得到在
当前日期
之后举行的第一个最新事件,我按
事件开始日期
排序

但它正在查询第一个
orderBy
,然后对其执行运行条件

EVENT::where(Event::START_DATE, '>', 'CURDATE()')->orderBy(Event::START_DATE)->take($nThEvent)->get()->toArray();
这对你有用吗

EVENT::where(Event::START_DATE, '>', 'CURDATE()')->latest('START_DATE')->first();

如果必须调用sql函数,则应使用
whereRaw()
,例如:

EVENT::whereRaw(EVENT::START_DATE.'>CURDATE()
->最新(事件:开始日期)
->以($NTH事件)为例
->get()->toArray();
顺便说一句,您可以始终使用
toSql()
调试查询,它返回一个包含生成SQL的字符串:

EVENT::whereRaw(EVENT::START_DATE.'>CURDATE()
->最新(事件:开始日期)
->以($NTH事件)为例
->toSql();
请注意,
latest(Event::START_DATE)
等于write
orderBy(Event::START_DATE,'desc')

更新:如果只想获取一条记录,则应使用返回集合的
first()
而不是
get()
,例如:

EVENT::whereRaw(EVENT::START_DATE.'>CURDATE()
->最新(事件:开始日期)
->第一()

如果我只是删除orderBy和take,条件工作得很好,但最新的工作很好,toSql真的可以拯救生命,我以前不知道这一点,谢谢