我有这个功能:
function get_kwp($siteid){
$this->db->select('siteid')
->from('nwsite')
->where('siteid', $siteid);
}
我现在想要在另一个MySQL语句中包含此函数,以节省每次需要调用它时必须进行子选择。
这是我需要调用的另一个MySQL语句:
$this->db->select("day, month, get_kwp($siteid) AS kwp")
->from('nwsite');
这似乎没有执行函数get_kwp()。
有什么想法吗?
由于
答案 0 :(得分:2)
CodeIgniter子查询上的简单Google返回了以下结果:http://codeigniter.com/wiki/Subqueries
您不能在SQL SELECT语句中包含PHP函数调用。您应该在数据库语句中构建子查询。使用我提供的链接来了解如何实际操作。
修改强>
我刚刚看到文章引用了GitHub上的一个库,但是这个库的安装非常简单。
答案 1 :(得分:0)
您可以在MySQL中编写一个函数:
DELIMITER $$
CREATE FUNCTION get_kwp(Mysite_id INTEGER) RETURNS INTEGER
BEGIN
DECLARE result INTEGER;
SELECT siteid INTO result FROM nwsite WHERE siteid = Mysite_id LIMIT 1;
RETURN result;
END $$
DELIMITER ;
在查询中使用它:
SELECT day, month, get_kwp('$siteid') AS kwp FROM nwsite;