mysql查询不起作用

时间:2011-12-29 12:47:33

标签: mysql sql

如果行不存在,我想设置查询

IF NOT EXISTS (SELECT id FROM table WHERE id=1)
INSERT INTO table (id, name) VALUES (1,'abx');

并且如果id!= 1则插入值并检查行是否已存在

如果有解决方案?

提前感谢...

最后我发现了它

INSERT INTO表(id,name)VALUES(1,'abx')ON DUPLICATE KEY UPDATE id = 1;

感谢您的支持

4 个答案:

答案 0 :(得分:1)

您遇到数据类型问题 - 将SELECT id与数字(id = 1 - 没有撇号)进行比较,并在INSERT中将id写为字符串(在撇号中:{{ 1}})。

答案 1 :(得分:1)

INSERT IGNORE INTO `table_name` (`id`, `name`)
VALUES (1, 'abx');

答案 2 :(得分:1)

MySQL没有“IF NOT EXISTS”。

了解更多信息:How to 'insert if not exists' in MySQL?

您会看到有解决方法,但使用MsSQL语法将无效。

使用IGNORE应该有所帮助:INSERT IGNORE INTO

或者,只是让它失败。

答案 3 :(得分:0)

我认为:

INSERT IGNORE INTO table (id, name) VALUES (1,'abx');

你想要的吗?如果INSERT不成功,它将无声地失败。

请注意,该键不需要引号,它是整数,而不是字符串