1

使用 EXISTS 函数时,我从 mysql 收到错误。我会走 ON DUPLICATE KEY 路线,但“str”字段必须是 TEXT 类型。

这是我的桌子:

CREATE TABLE `locale_display_string` (
    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    `str` TEXT NOT NULL,
    `date` INT(11) NOT NULL DEFAULT '0',
    PRIMARY KEY (`id`)
)
TYPE=MyISAM;

这是我要运行的查询:

INSERT INTO `locale_display_string` (str, date) VALUES ('test', '1368204427') 
WHERE NOT EXISTS (SELECT * FROM `locale_display_string` WHERE str='test');

我究竟做错了什么?

4

1 回答 1

2

VALUES 不兼容...使用SELECT.

INSERT INTO `locale_display_string` (str, date)
SELECT 'test', '1368204427'
FROM `locale_display_string`
WHERE NOT EXISTS(SELECT TRUE FROM `locale_display_string` WHERE str='test')
LIMIT 1
于 2013-05-10T17:42:42.263 回答