[英]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_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 ... 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.