1

DataType が DATE である列の月と年の部分を取得しようとしている Codeigniter Active Record Class を使用しています

$this->db->where('mo', 'MONTH(so_date)');
$this->db->where('yr', 'YEAR(so_date)');

上記のコードは私にこれを与えます。MONTH() AND YEAR() は一重引用符で囲みます。

SELECT *
FROM mytbl 
WHERE `mo` = 'MONTH(so_date)'
AND `yr` = 'YEAR(so_date)'

//so_date looks like this : 2013-04-15

ここで何が間違っているのですか、または引用符を取得しないようにするには何を変更すればよいですか? 引用符を削除して PHPMYADMIN で実行しようとすると、クエリはまさに私が望むものを提供します。

4

2 に答える 2

1
$this->db->where('mo = MONTH(so_date)');
于 2013-04-15T09:23:37.587 に答える
1

ドキュメントから

$this->db->where()オプションの 3 番目のパラメーターを受け入れます。

FALSE に設定すると、CodeIgniter はフィールドまたはテーブル名をバッククォートで保護しようとしません

$this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE);

だから次のようなことをしてください:

$this->db->where('mo', 'MONTH(so_date)' , FALSE);
于 2013-04-15T09:16:52.440 に答える