我在活动记录查询中遇到类似问题。
当我使用join('users parent', 'child.treePath LIKE CONCAT(parent.treePath,"%")')
时
代码点火器吐出JOIN 'users' parent ON 'child'.'treePath' 'LIKE' CONCAT(parent.treePath,"%")
(请注意,由于降价,我已用(`
)替换了所有后退标记('
):/)
所以,问题是代码点火器正在(`
)包装LIKE。
如何判断不尝试格式化此块?
<小时/> 完整查询:
$this->db->select('child.uuid')
->from('users child')
->join('users parent', 'child.treePath LIKE CONCAT(parent.treePath,"%")')
->where('parent.uuid', $uuid)
->where("LENGTH(REPLACE(child.treePath, parent.treePath, '')) - LENGTH(REPLACE(REPLACE(child.treePath, parent.treePath, ''), '/', '')) <= ", $levels, 'false')
->where("LENGTH(REPLACE(child.treePath, parent.treePath, '')) - LENGTH(REPLACE(REPLACE(child.treePath, parent.treePath, ''), '/', '')) > ", 0, 'false')
->group_by('child.treeId');
答案 0 :(得分:3)
如果您在一次通话中将所有这些功能链接在一起,您也可以使用
$this->db->query("Write all your specific SQL here");
在您的情况下,没有看到与Codeigniter的查询构建器进行摔跤的好处。