需要在列中重命名数据,MySQL

时间:2018-08-06 17:28:11

标签: mysql

我有一个查询,可从给定表中获取所有数据,但是有一些数据点需要重命名。

例如: 在我的对象列中,我有thing1,thing2,thing3,它们需要重命名为thing0,thing1,thing2,

在我的查询中,我只想重命名一个数据

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

谢谢。

2 个答案:

答案 0 :(得分:0)

您应该只使用如下更新...

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

答案 1 :(得分:0)

正如我在评论中提到的那样,您的帖子非常笼统,几乎不会吸引任何能直接解决您问题的答案。在这个答案中,我将通过让您知道自己做错了什么来使您步入正轨。

对于初学者来说,您的查询是错误的,您可以使用任何SQL syntax checking tool轻松地找出来。对我来说,您要尝试执行的操作还不是很清楚,但是很明显,您已经将两个独立的查询混为一谈了。查询是:

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

通过分离上述查询,很容易看出它们根本没有关联,这表明您的想法是错误的。在第一个查询中,选择表my_table的{​​{1}}属性为单词project的表的所有行,而在第二个查询中,更新表'mine'的{​​{1}}列。 objects列设置为objects的行从表'thing0'objects。您会发现这没有任何意义。

如果您要尝试将表'thing1'的{​​{1}}列更新为objects的行,则该列的值为my_table,而{ {1}}包含单词'thing0',那么您所需的查询内容如下:

'thing1'

在以上查询中,请注意单词project周围的'mine'通配符。这是有关如何根据需要使用它的简短指南:

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