繁体   English   中英

多行更新或插入mysql

[英]multiple rows update or insert 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

我想减少代码中的查询步骤,知道吗?

首先检查它是否更新,或者注意mysql_query()是否返回false,然后可以使用插入查询并执行查询。

使用INSERT ... ON DUPLICATE KEY UPDATE 。如果要在单个语句中执行此操作,我建议使用INSERT ... ON DUPLICATE KEY UPDATE语法,如下所示:

INSERT INTO table (id, someothervalue) VALUES (1, 'hi mom') ON DUPLICATE KEY UPDATE someothervalue = 'hi mom';

如果不存在具有指定键值(主键或唯一键)的记录,则将执行初始INSERT语句。 如果记录已经存在,则执行以下UPDATE语句(someothervalue = 3)。

下面的查询将起作用。

REPLACE INTO `table1`
( `name`,`sex`,`age` )
VALUES
( 'Mark', '29', 'male' )
ON DUPLICATE KEY UPDATE user_id=3;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM