Запрос на обновление определенного поля столбца в SQL - PullRequest
0 голосов
/ 11 февраля 2019

Я попробовал следующие запросы, чтобы изменить поле столбца таблицы «роль» с «Администратор» на «Администратор».Я не информирован о значениях id.моя таблица 'role' содержит два столбца 'name' и '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 голосов
/ 11 февраля 2019

Вы не используете ключевое слово table, поэтому второй пример почти верен

update role set name='Administrator' where name='Admin';
0 голосов
/ 11 февраля 2019

вам нужно изменить структуру таблицы, чтобы команда Mysql была:

ALTER TABLE role CHANGE Admin Administrator [Admin column data type]
0 голосов
/ 11 февраля 2019

Вторым будет стандартный способ:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...