我正在使用Codeigniter Active Record Class试图获取其中dataType为DATE的列的月份和年份
$this->db->where('mo', 'MONTH(so_date)');
$this->db->where('yr', 'YEAR(so_date)');
上面的代码给了我这个。 MONTH()和YEAR()用单引号括起来。
SELECT *
FROM mytbl
WHERE `mo` = 'MONTH(so_date)'
AND `yr` = 'YEAR(so_date)'
//so_date looks like this : 2013-04-15
我在这里做错了什么或者我改变了什么以免得到引号?当我删除引号并尝试在PHPMYADMIN中运行它时,查询给出了我想要的内容。
答案 0 :(得分:1)
来自doc
$this->db->where()
接受可选的第三个参数。
如果您将其设置为FALSE,则CodeIgniter 将不会尝试使用反引号来保护您的字段或表名。
$this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE);
所以做的事情如下:
$this->db->where('mo', 'MONTH(so_date)' , FALSE);
答案 1 :(得分:1)
$this->db->where('mo = MONTH(so_date)');