查询构建器如何处理->first()
?
它只是执行Limit 1
还是执行某些高级检查以确定是否只返回1行?
在极少数情况下,应用程序可能希望确保仅返回1行。也许->first()
不是最佳解决方案?
非常感谢任何见解或指导!
答案 0 :(得分:7)
如果找不到结果,CASE
方法将始终返回一个结果或DECLARE @Gender VARCHAR(10)
SET @Gender = 'Female'
WITH queryResult AS
(
SELECT * FROM Employees WHERE Age >= 50
AND Status = CASE WHEN @Gender = 'Male' THEN 'Single' ELSE 'Married' END
)
SELECT * FROM queryResult;
。以下是它的全部内容:
first()
仅使用null
(或public function first($columns = array('*'))
{
$results = $this->take(1)->get($columns);
return count($results) > 0 ? reset($results) : null;
}
)的区别在于它实际上只是通过调用take(1)
返回一个结果对象。 (另外,limit(1)
显然执行查询。其他人不执行查询。