【问题标题】:Convert mysql query logic to Laravel query builder将 mysql 查询逻辑转换为 Laravel 查询构建器
【发布时间】:2015-07-12 02:16:31
【问题描述】:

我正在尝试将我的 mysql 查询逻辑转换为 Laravel 查询生成器。我不知道如何将其转换为 laravel 查询。

我的查询逻辑是

SELECT id,name,
case 
    when visibility_status = '1' 
    then 'Visible' 
    when visibility_status = '0' 
    then 'Invisible'
    end as visibility_status FROM `flowers`

通常我使用查询生成器编写选择查询,但无法实现上述逻辑

$result = DB::table('flowers')
        ->select('flowers.id as id', 'flowers.name as name',
'flowers.visibility_status as visibility_status');

【问题讨论】:

  • 另一种方法可能是添加一个表来解码值,然后加入它。所以你会有一个只有两行两列的小表:0|Invisible, 1|Visible。然后在普通 SQL 或(非原始查询)Laravel 查询生成器中,您只需从花连接到解码表并从那里读取值。或者,只需读取 0 和 1 并直接在输出它们的 Laravel 视图中对它们进行解码,假设你正在使用它们。

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


【解决方案1】:

试试这个

$users = DB::table('flowers')
->select(["id", "name",
      DB::raw("
       case 
          when visibility_status = '1' 
          then 'Visible' 
          when visibility_status = '0' 
          then 'Invisible'
          end as visibility_status
    ")])->get();

这是它的参考 http://laravel.com/docs/4.2/queries#raw-expressions

【讨论】:

  • 注意:我相信你需要 PHP 5.4 >= 才能完成这项工作?
  • @MackieeE PHP >= 5.4 无论如何都是 Laravel 的要求
猜你喜欢
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
  • 1970-01-01
  • 2015-12-13
  • 2016-02-11
  • 1970-01-01
相关资源
最近更新 更多