多行更新或插入MySQL的
问题描述:
我创建了这样一个表格,多行更新或插入MySQL的
id | option_name | value | user_id
----------------------------------------------
1 | name | Joe | 1
----------------------------------------------
2 | age | 30 | 1
----------------------------------------------
3 | sex | male | 1
----------------------------------------------
4 | name | Jane | 2
----------------------------------------------
5 | age | 28 | 2
----------------------------------------------
6 | sex | female | 2
----------------------------------------------
我想更新相应的user_id
和option_name
所有行。
如果user_id == 3
,当我提交与option_name
(name
,sex
,age
)形式,领域,如果没有与user_id == 3
没有行再插入行,但如果存在的行我想用新值更新这些一行value
领域。
请检查我的代码:http://pastebin.com/THQdYpix
我想减少我的代码查询步骤,任何想法?
答
首先检查它是否更新或注意mysql_query()是否返回false,然后您可以使用插入查询并执行查询。
答
使用INSERT ... ON DUPLICATE KEY UPDATE。如果你想这样做在一个声明,我会建议使用INSERT ...对重复密钥更新的语法如下:
INSERT INTO table (id, someothervalue) VALUES (1, 'hi mom') ON DUPLICATE KEY UPDATE someothervalue = 'hi mom';
最初的INSERT语句将执行,如果没有指定键值(主键或唯一键)的现有记录。如果记录已经存在,则执行以下UPDATE语句(someothervalue = 3)。
+0
@ user3643568这可能会帮助你 – Priyank 2015-02-10 06:08:03
答
下面的查询将起作用。
REPLACE INTO `table1`
(`name`,`sex`,`age`)
VALUES
('Mark', '29', 'male')
ON DUPLICATE KEY UPDATE user_id=3;
而你对这个任务的具体问题是?我们不会为你做这一切。 – 2015-02-10 06:02:13
你可以给我们也是你正在使用的代码。 – 2015-02-10 06:03:37
显示一些代码,你已经尝试过.. – 2015-02-10 06:06:37