需要重命名列中的数据,mysql

iqih9akk  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(447)

我有一个从给定表中获取所有数据的查询,但是有几个数据点需要重命名。
例:在我的objects列中,我有thing1,thing2,thing3,它们需要重命名为thing0,thing1,thing2,
这里是我的查询,我试图重命名一段数据

SELECT *
FROM my_table
WHERE project LIKE "mine"
UPDATE objects
SET objects='thing0'
WHERE objects='thing1'

谢谢您。

pdtvr36n

pdtvr36n1#

您只需使用如下更新。。。

UPDATE <tablename> SET `objects` = 'thing0' WHERE `objects` = 'thing1' AND `project` LIKE '%mine%';
zzlelutf

zzlelutf2#

正如我在评论中提到的,你的帖子非常笼统,很难吸引到任何能直接解决你问题的答案。在这个答案中,我会让你知道你做错了什么,从而让你走上正轨。
对于初学者来说,您的查询是错误的,使用任何sql语法检查工具都可以很容易地发现这一点。我还不太清楚你想用它做什么,但很清楚的是,你把两个独立的查询混在了一起。查询包括:
SELECT * FROM my_table WHERE project LIKE "mine"; UPDATE objects SET objects = 'thing0' WHERE objects = 'thing1'; 通过分离上述查询,很容易看出它们根本不相关,这表明您的想法是错误的。在第一个查询中,选择表的所有行 my_table 谁的 project 属性就是这个词 'mine' ,而在第二个查询中,更新 objects 表的列 objects'thing0' 对于具有 objects 列设置为 'thing1' . 你可以看到这毫无意义。
如果你想做的是更新 objects 表的列 my_table'thing0' 对于行,列具有值 'thing1' 以及 project 包含单词 'mine' ,则您需要的查询如下所示:

UPDATE my_table
SET objects = 'thing0'
WHERE objects = 'thing1'
AND project LIKE '%mine%';

在上面的查询中,请注意 % 单词周围的通配符 'mine' . 以下是一个简短的指南,说明如何根据您的需要使用它:

AND project LIKE 'mine'     -- Finds any values that equal "mine" (AND project = 'mine')
AND project LIKE 'mine%'    -- Finds any values that start with "mine"
AND project LIKE '%mine'    -- Finds any values that end with "mine"
AND project LIKE '%mine%'   -- Finds any values that have "mine" in any position

相关问题