MYSQL 使用变量更新多列
Posted
技术标签:
【中文标题】MYSQL 使用变量更新多列【英文标题】:MYSQL Updating multiple columns using variables 【发布时间】:2011-10-09 13:39:56 【问题描述】:我使用这个查询将我所有的值插入到这个数据库中:
INSERT INTO products ($fields) VALUES ($values)
但是,我尝试对 UPDATE 使用相同的格式:
UPDATE products SET ($fields) VALUES ($values) WHERE sku = '$checksku'
...并且出现语法错误:
You have an error in your SQL syntax; check the manual that corresponds to your mysql server version for the right syntax to use near '('product,make,model,' at line 1
我想不通。将不胜感激任何帮助。谢谢。
【问题讨论】:
MySQL 文档非常有用:UPDATE Syntax 【参考方案1】:你需要一个 =
UPDATE products SET ($fields) = $values WHERE sku = '$checksku'
【讨论】:
这不是有效的 MySQL 语法。【参考方案2】:UPDATE 语法与 INSERT 语法不同。 UPDATE 的一个例子是:
"UPDATE products SET field1 = 'value1', field2 = '$val2', field3 = 5 WHERE sku = '$checksku'"
虽然这可能不安全。你应该看看parameterized queries。
【讨论】:
我基本上最终使用了这个,只是对我不得不做 23 次(字段数量)感到失望【参考方案3】:INSERT INTO products ($fields) VALUES ($values) ON DUPLICATE KEY UPDATE field = VALUES(field), ...
不要忘记唯一键或主键
【讨论】:
以上是关于MYSQL 使用变量更新多列的主要内容,如果未能解决你的问题,请参考以下文章