如果行不存在,我想设置查询
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;
感谢您的支持
答案 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
不成功,它将无声地失败。
请注意,该键不需要引号,它是整数,而不是字符串