我在Cake 2.1中有以下代碼。我嘗試獲取唯一字符串消息的列表,刪除所有重複項。蛋糕PHP自動添加ID字段到SQL查詢
$this->loadModel('ErrorMessage');
$this->ErrorMessage->recursive = -1;
$error_messages = $this->ErrorMessage->find('list',
array(
'fields' => array('DISTINCT message'),
)
);
哪產生以下錯誤:
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT
ErrorMessage. message
FROMintermatte
.error_messages
AS `ErrorMes' at line 1SQL Query: SELECT
ErrorMessage
.id
, DISTINCTErrorMessage. message
FROMintermatte
.error_messages
ASErrorMessage
WHERE 1 = 1
有趣的部分是在所產生的查詢; Cake已經自動包含了id字段!
單獨我測試查詢,它產生預期的結果:(唯一字符串列表)
SELECT DISTINCT message FROM error_messages;
下面是引用創建表:
CREATE TABLE `error_messages` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`message` MEDIUMTEXT NULL COLLATE 'utf8_unicode_ci',
`figure` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`created` DATETIME NULL DEFAULT NULL,
`modified` DATETIME NULL DEFAULT NULL,
PRIMARY KEY (`id`),
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
ROW_FORMAT=COMPACT;
所以現在的問題是,爲什麼蛋糕自動包含id字段,我該如何告訴蛋糕不要這樣做?
我當然可以使用查詢,但這不是'好'。 ;)
大,謝謝!在這種情況下完美工作。 – Snorvarg