我在学校学习这个,我很困惑。我尝试在单个数据库中的单个表中的列之间复制信息,所有这些都是本地的。
基本上:
(我需要循环并更新所有记录)
UPDATE `my_records`
SET `realname` = `name`
WHERE `realname` = 0;
SELECT * FROM `my_records` SET `realname` = `name` WHERE `realname` = 0;
它一直告诉我我有语法错误。
我现在明白为什么他们要我学习这个。表格中的每一行都是不同的,因此当我更新所有列时,某些行会发生变化而不应该是因为这不是我之后的最终结果。我可以试着举个例子,但这对我来说很困惑。
DB - >表 - >第1行 - 保留此人的姓名 - >第2行 - 保留图片
的人所以我猜他们希望我找到一种方法来排除更新' real_name'第2行上的列,其中图像是JPG,GIF或PNG。
我认为更新表时他们正在寻找的最终结果是:
第1行' David' '大卫' 第2行' flower.jpg'
然后,这会一遍又一遍地循环播放所有记录。
答案 0 :(得分:0)
您需要使用UPDATE
代替SELECT
。 SELECT
语句只返回数据,不会修改数据。
因此,要返回记录,您将在下一步中更新:
SELECT `realname`, `name` FROM `my_records` WHERE `realname` = 0;
然后更新这些记录:
UPDATE `my_records` SET `realname` = `name` WHERE `realname` = 0;
请注意,此查询将更新整个表格,将realname
的值等于0
的任何行设置为同一行name
的值柱。
其他一些可能有用的陈述:
UPDATE `my_records` SET `realname` = `name` WHERE `realname` = '';
这会影响realname
相当于'空字符串'
UPDATE `my_records` SET `realname` = `name` WHERE `realname` IS NULL;
会影响realname
为NULL