2014-08-29 67 views
1

我试着做一个子查询与笨子查询存在

$this->db->where(" EXISTS (SELECT * FROM myTable)"); 

但它不工作,这个输出是:更改为MyQuery + WHERE“存在(SELECT * FROM myTable的);

EXISTS之前的报价使查询无法解析!

有谁知道如何解决它?

谢谢!

+2

[此]( http://stackoverflow.com/questions/6047149/subquery-in-codeigniter-active-record)可能会发出一些光 – Ghost 2014-08-29 03:38:19

回答

4

请删除EXISTS关键字前后的空格,不显示任何错误。

$this->db->where("EXISTS(SELECT * FROM myTable)"); 
+0

最好的解决方案!谢谢 – Nacho 2014-08-29 14:59:37

1

试试这个。

而不是使用'where'子句,请记下完整的查询字符串&使用$ this-> db-> query()执行查询。

$qry_string= $yourquery . "WHERE EXISTS (SELECT * FROM myTable)"; 
    $this->db->query($qry_string); 
+0

它的作品,但它不那么整齐。谢谢! – Nacho 2014-08-29 14:59:54

2

也许你可以尝试使用

设置逃生虚假$这个 - > DB->其中( “EXISTS(SELECT * FROM mytable的)”,空,假);

这是的片断,其中()中DB_active_rec.php

公共函数,其中($键,$值= NULL,$逸出= TRUE)