我尝试了以下查询,将表“角色”的列字段从“管理员”更改为“管理员”。我不知道有关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;
答案 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]