我想更新一个 mysql 行,但我不想指定所有的列名。 该表有 9 行,我总是想以正确的顺序更新最后 7 行。 这些是字段
id
projectid
fangate
home
thanks
overview
winner
modules.wallPost
modules.overviewParticipant
有什么方法可以在不指定名称的情况下更新最后几条记录? 使用 INSERT 语句可以很容易地完成此操作:
INSERT INTO `settings`
VALUES (NULL, ...field values...)
所以我希望我能做这样的事情:
UPDATE `settings`
VALUES (NULL, ...field values...)
WHERE ...statement...
但不幸的是,这不起作用。
最佳答案
如果前两列构成主键(或唯一索引),您可以使用 replace
所以基本上不用写
UPDATE settings
SET fangate = $fangate,
home = $home,
thanks = $thanks
overview = $overview,
winner = $winner,
modules.wallPost = $modules.wallPost,
modules.overviewParticipant = $modules.overviewParticipant
WHERE id = $id AND procjectId = $projectId
你会写
REPLACE INTO settings
VALUES ($id,
$projectId,
$fangate,
$home,
$thanks
$overview,
$winner,
$modules.wallPost,
$modules.overviewParticipant)
当然这只有在该行已经存在的情况下才有效,否则将被创建。此外,如果重要的话,它会在幕后导致 DELETE 和 INSERT。
关于mysql - 在不指定列名的情况下更新 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12192278/