Обновите MySQL столбцы с именем пользователя - PullRequest
0 голосов
/ 25 ноября 2018

Например, если у меня есть такая структура таблицы, и я хочу обновить администратор, как я могу это сделать?

+-----------+-----------+
|   sender  | recipient |
+-----------+-----------+
|   admin   | user1     |
|   user1   | admin     |
+-----------+-----------+

Что я пробовал?

UPDATE messages 
SET (sender='newname' OR recipient='newname') 
WHERE (sender='admin' OR recipient='admin')

ОШИБКА:

SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 В синтаксисе SQL имеется ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с (sender = 'dsfdsx' ИЛИ ​​получатель = 'dsfdsx') ГДЕ (sender = 'admin' ИЛИ ​​получатель = 'admi' в строке 1

Что следует изменить?

1 Ответ

0 голосов
/ 25 ноября 2018

Вы можете использовать условные выражения CASE..WHEN до UPDATE соответственно:

UPDATE messages
SET 
  sender = CASE sender WHEN 'admin' THEN 'newname' ELSE sender END, 
  recipient = CASE recipient WHEN 'admin' THEN 'newname' ELSE recipient END
WHERE 
  sender = 'admin' OR recipient = 'admin' 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...