多行更新或插入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_idoption_name所有行。

如果user_id == 3,当我提交与option_namenamesexage)形式,领域,如果没有与user_id == 3没有行再插入行,但如果存在的行我想用新值更新这些一行value领域。

请检查我的代码:http://pastebin.com/THQdYpix

我想减少我的代码查询步骤,任何想法?

+6

而你对这个任务的具体问题是?我们不会为你做这一切。 – 2015-02-10 06:02:13

+1

你可以给我们也是你正在使用的代码。 – 2015-02-10 06:03:37

+0

显示一些代码,你已经尝试过.. – 2015-02-10 06:06:37

首先检查它是否更新或注意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;