【问题标题】:Laravel Query Builder - Convert MySQL quert to Laravel Query BuilderLaravel 查询生成器 - 将 MySQL 查询转换为 Laravel 查询生成器
【发布时间】:2015-12-13 18:46:15
【问题描述】:

我在 MySQL 中有一个查询:

SELECT student, ((SUM(mark1)+SUM(mark2))/SUM(mark3)) AS avg FROM your_table

SELECT student, (mark1+mark2-mark3) AS result FROM your_table

我喜欢将它们转换为 Laravel 的查询构建器格式查询。

但我找不到任何方法。

【问题讨论】:

  • 感谢您的回答,但我喜欢避免使用 DB:raw。有什么办法吗?

标签: mysql laravel laravel-4 laravel-5 query-builder


【解决方案1】:

你需要这样的东西

Student::select( DB::raw('student, ((SUM(mark1)+SUM(mark2))/SUM(mark3)) AS avg ')->get();

【讨论】:

  • 感谢您的回答,但我喜欢避免使用 DB:raw。有什么办法吗?
  • Querybuilder 正在尝试帮助您编写 SQL……它是一个帮手。因此,您编写的所有 php 最终都会转换为 SQL。并非所有情况都适合它,因此您必须将 DB::raw() 用于高级用例。这不是一件坏事,所以不要以事实为由推销自己。无论如何,原始 SQL 比 php 快 10 倍。
  • 是的,但是 BD:RAW 有一个安全漏洞,所以每个人都应该尽量避免。
  • 只有当你传递的数据是你不应该做的未经处理的数据时。
  • 感谢您告诉我
【解决方案2】:

感谢您的帮助,但我已经找到了解决方案-

 $baseQuery =   DB::table('employee')->select('employee_name', DB::raw('employee_salary/employee_extension as employee_salary'), 'employee_position', 'employee_city', 'employee_extension',"employee_joining_date", 'employee_age', 'employee_id');

应该是这种格式

【讨论】:

    猜你喜欢
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2021-08-07
    • 2017-12-09
    • 2017-12-29
    • 2016-08-10
    • 1970-01-01
    相关资源
    最近更新 更多