【发布时间】:2014-05-01 18:08:58
【问题描述】:
我正在使用 java,如果不存在,我想向 mysql 数据库插入数据,如果存在,我还想更新该数据。但我找不到 mysql 命令。
我找到了插入代码,但这不是我想要的
INSERT INTO contacts
(contact_id, contact_name)
SELECT supplier_id, supplier_name
FROM suppliers
WHERE EXISTS (SELECT *
FROM orders
WHERE suppliers.supplier_id = orders.supplier_id);
为了更新,我找到了这段代码。但这不是我想要的。
UPDATE suppliers
SET supplier_name = (SELECT customers.customer_name
FROM customers
WHERE customers.customer_id = suppliers.supplier_id)
WHERE EXISTS (SELECT *
FROM customers
WHERE customers.customer_id = suppliers.supplier_id);
我想做的是这样的
UPDATE student SET student_score = 20 where student_id = 1 WHERE EXIST ( select * from student where student_id = 1;
【问题讨论】:
-
为什么你需要对子查询进行额外检查,那么这个命令足以更新
UPDATE student SET student_score = 20 where student_id = 1 -
听起来你想要
INSERT ... ON DUPLICATE KEY UPDATE。 Tutorial here
标签: java mysql command sql-update sql-insert