查询以更新SQL中的特定列字段

时间:2019-02-11 15:01:54

标签: mysql sql

我尝试了以下查询,将表“角色”的列字段从“管理员”更改为“管理员”。我不知道有关id的值。我的表“角色”包含两列“名称”和“ id”。 没有查询有效。我要去哪里错了?

update table role set name=replace('Administrator','Admin');
update table role set name='Administrator' where name='Admin';
select replace('Admin','Administrator') from role;

3 个答案:

答案 0 :(得分:4)

您没有使用table关键字,因此第二个示例几乎是正确的

update role set name='Administrator' where name='Admin';

答案 1 :(得分:2)

第二种是标准方式:

update role  -- "table" is not appropriate
    set name = 'Administrator'
    where name = 'Admin';

我的猜测是您没有符合条件的行-大概是由于name中的错误/隐藏字符。试试这个:

select *
from role
where name = 'Admin';

如果未返回任何行,请尝试like

where name like 'Admin%'
where name like '%Admin'
where name like '%Admin%'

或者使用regexp

where name regexp '[[:<:]]admin[[:>:]]'

(请注意,regexp默认情况下不区分大小写)

如果其中之一与所需行匹配,请在update中使用它。

答案 2 :(得分:-2)

您需要更改表结构,以便Mysql命令应为:

ALTER TABLE role CHANGE Admin Administrator [Admin column data type]