MySQL EXISTS() 错误

标签 mysql exists

我在使用 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');

我做错了什么?

最佳答案

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

关于MySQL EXISTS() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487922/

相关文章:

mysql - 如何创建root管理用户root :rootroot for MySQL?

Windows Batch 文件夹存在且文件夹不存在

if-statement - 如果 netezza 中存在则删除

sql - 以下两个查询会一致地给出相同的输出吗?

php - 无法理解如何做到这一点...PHP/Mysql 问题

php - 显示图像时出错 - 从 PHP 和 MySQL 新手到 Ninja 的代码

mysql - 具有多个条件的 SQL 查询

ruby - 您如何检查 Capistrano 中是否存在文件(在远程服务器上)?

sql - 仅当记录存在时才插入到 Postgres 表中

mysql - Magento 搜索未显示相关结果