1
我想通過使用它的tableGateway獲得ZF2以下類型的查詢。ZF2表逍遙法外選擇IF()列
SELECT IF(column1 LIKE 'text', 1, 0)
FROM table
WHERE (column1 LIKE 'text' OR column2 LIKE 'text') AND status = 1
是否有可能做到這一點?我有嘗試以下操作:
$this->tableGateway->select(function (Select $select) use ($keyword) {
$select->columns(array('id', "IF(column1 LIKE '{$keyword}', 1, 0)"), false)
->where(array(
new Predicate(
array(
new Like('column1', '%'.$keyword.'%'),
new Like('column2', '%'.$keyword.'%')
),
Predicate::COMBINED_BY_OR
),
'status' => 1
));
});
但這給出了錯誤說Unknown column 'IF(column1 LIKE 'test', 1, 0)' in 'field list'
。 有沒有解決方法?
編輯
當我的var_dump-ED的SQL字符串,我有以下幾點:
SELECT `id` AS `id`, `IF(table.column1 LIKE 'test', 1, 0)` AS `IF(table.column1 LIKE 'test', 1, 0)`
FROM `table`
WHERE (`table`.`column1` LIKE '%test%' OR `table`.`column2` LIKE '%test%')
AND `table`.`status` = '1';
所以它把我的中頻`報價和對待它像列。所以問題是如何禁用?