是否可以使用CodeIgniter的查询生成器进行此查询?

时间:2017-06-06 15:14:24

标签: php mysql sql codeigniter

查询:

select (exists (select 1 from table1 where url = 'fajne-to-jest')) as in_table1,
       (exists (select 1 from table2 where url = 'fajne-to-jest')) as in_table2;

我看不到存在的功能。

我不认为这是可能的,但也许我错了。

所以问题是,是否可以仅使用CodeIgniter的查询构建器创建此复杂查询?

1 个答案:

答案 0 :(得分:2)

可能没有像你的例子那样优化。最简单的解决方案是不使用Querybuilder并直接编写语句以便在query()中使用。

$sql = "select (exists (select 1 from table1 where url = 'fajne-to-jest')) as in_table1,
               (exists (select 1 from table2 where url = 'fajne-to-jest')) as in_table2";
$query = $this->db->query($sql);

Querybuilder(QB)是一个很棒的工具,但它通常(可能更经常)完全没有必要。 QB的主要任务是构建查询语句。为什么要执行大量代码来创建易于编写的查询?

在需要有条件地更改查询语句的情况下,QB很棒。例如,添加where子句,更改排序顺序等。