带有指定字段的MySQL的UPDATE语句

时间:2014-07-31 22:45:56

标签: mysql sql sql-update sql-insert

我有一个数组,我使用INSERT语句插入数据库,如下所示。

INSERT INTO import_io 
(`total`, `thru`, `name/_source`, `name`, `name/_text`, `strokes`) 
VALUES ('-6','F','/golf/pga/players/Marc+Leishman/8442/scorecard/2014/35','http://sports.yahoo.com/golf/pga/players/Marc+Leishman/8442/scorecard/2014/35','Marc Leishman','64')

无论如何都要使用UPDATE语句而不是INSERT而必须拆分这些值,以便我可以像......一样......

UPDATE import_io 
SET (`total`, `thru`, `name/_source`, `name`, `name/_text`, `strokes`) 
VALUES ('-6','F','/golf/pga/players/Marc+Leishman/8442/scorecard/2014/35','http://sports.yahoo.com/golf/pga/players/Marc+Leishman/8442/scorecard/2014/35','Marc Leishman','64') 
WHERE 'name/_text' = 'Marc Leishman'

4 个答案:

答案 0 :(得分:1)

问:无论如何都要使用类似于此格式的UPDATE语句:

UPDATE mytable 
   SET (col1, col2)
VALUES ('val1', 'val2')
 WHERE somecol = 'someval'

答:不,UPDATE语句没有类似的语法。

UPDATE语句的语法非常具体。这里没有必要重复文档。参考:http://dev.mysql.com/doc/refman/5.5/en/update.html


目前尚不清楚你想要实现的目标。所以我对推荐INSERT ... ON DUPLICATE KEY UPDATE ...犹豫不决,尽管这对于"刷新"是一种有用的模式。来自源文件的表(如果表中有UNIQUE KEY,并且源中提供了UNIQUE KEY的值。)

我还建议使用INSERT加载临时表,然后运行多表UPDATE语句来更新临时表中的目标表。

答案 1 :(得分:0)

这是不可能的。

其他解决方案:使用PHP创建查询字符串,并使用单元格名称和内容数组进行更新或插入。自动构建查询字符串。

或使用“复制键”组合插入或更新

insert into 
import_io (total, thru) 
VALUES('$total', '$thru') 
on duplicate key 
    update set total='$total
    ....

答案 2 :(得分:0)

您可以使用SELECT修改数据并使用UPDATE更新列来获取数组。

由于我不知道您正在使用的编程语言,我无法举例说明。

答案 3 :(得分:0)

要插入:

  

INSERT INTO Table_name(the_names_of_variebles)VALUES   (In_Values_in_the_same_pattern)

要导入:

  

SELECT * FROM Table_name WHERE variable_name ='input_to_find'