查询语言.flow

函数原型

QueryPHP 数据构造器支持条件运算符,可以根据不同条件做不同的事情,支持所有的构造器函数,即返回 $this

public function ifs($value = false);
public function elseIfs($value = false);
public function elses();
public function endIfs();

用法如下

/*
Array
(
    [0] => SELECT `test`.* FROM `test` WHERE `test`.`id` = 2 ORDER BY `test`.`name` DESC LIMIT 1 
    [1] => Array
        (
        )

    [2] => 
    [3] => 5
    [4] => 
    [5] => Array
        (
        )
)
*/

$id = 2;

Db::table('test')->

ifs($id == 1)->where('id', 1)->

elseIfs($id == 2)->where('id', 2)->orderBy('name DESC')->

elseIfs($id == 3)->where('id', 3)->where('id', 1111)->

elseIfs($id == 4)->where('id', 4)->

endIfs()->

getOne(true)

elses 浅记忆

elses 仅仅能记忆上一次 ifs,elseIfs 的结果,上一次的反向结果就是 elses 的条件值,我们建议不要在 SQL 链式中使用过度的条件判断。

/*
array (
  0 => 'SELECT `test`.* FROM `test` WHERE `test`.`id` = 2 AND `test`.`id` = 4 ORDER BY `test`.`name` DESC LIMIT 1',
  1 => 
  array (
  ),
  2 => false,
  3 => NULL,
  4 => NULL,
  5 => 
  array (
  ),
)
*/

$id = 2;

Db::table('test')->

ifs($id == 1)->where('id', 1)->

elseIfs($id == 2)->where('id', 2)->orderBy('name DESC')->

elseIfs($id == 3)->where('id', 3)->where('id', 1111)->

// elses 仅仅能记忆上一次 ifs,elseIfs 的结果,上一次的反向结果就是 elses 的条件值
// 其等价于 elseIfs($id != 3)
elses()->where('id', 4)->

endIfs()->

getOne()

这里跟常用的 if elseif else 有区别,主要是受限于技术,其次是为保持简洁。

上次更新: 2018/11/14 上午9:23:00