如何输入复杂的SQL语句

#1 redguan

例如需要用到GROUP BY 时,如何操作?

如果使用 findSql(""); 可以使用原生SQL语句。那里面的变量又如何写?表前缀?表名?

理论上用得比较少。但对于一些复杂的应用。SQL语句往往也比较复杂。

2010-11-17 17:07:06

#2 jake

findSql中的参数是SQL语句,SQL语句是字符串,所以只要构造好字符串,就可以通过findSql来执行。
字符串中的变量之类的,可以按普通变量的方式来用。

举个例子,winblog内“获取最多人关注的前9位用户”的一个成员函数
        public function topfans($top = 9){
                $prefix = $GLOBALS['G_SP']['db']['prefix']; // 这是表前缀
                $sql = "select {$prefix}user.uid, {$prefix}user.username,{$prefix}user.nickname, {$prefix}fans.touid, count({$prefix}fans.touid) as counter from {$prefix}fans,{$prefix}user where {$prefix}user.uid = {$prefix}fans.touid group by {$prefix}fans.touid order by counter DESC limit {$top}";
                return $this->findSql($sql);
        }

2010-11-17 21:42:34

#3 zhangbangyue

好,用得着!

2010-11-20 09:20:49