Я хочу, чтобы заполнить пароль в таблице пользователей с помощью конкатенации 4 символов из имени пользователя и последние 5 цифр от ACCOUNTNUMBER в таблице Employee (другую таблицу)Назначение Выберите для обновления команды после конкатенации в MySql
Я попытался ниже запрос, но он возвращает пустой.
SET SQL_SAFE_UPDATES=0;
UPDATE user set password = (SELECT (CONCAT(SUBSTRING(user.username,1,4), SUBSTRING(employee.accountnumber,-5))) FROM employee WHERE user.employeename= employee.employeename);
SET SQL_SAFE_UPDATES=1;
Когда я попытался выполнить инструкцию SELECT отдельно в редакторе, он возвращает точные значения.
SELECT (CONCAT(SUBSTRING(user.username,1,4), SUBSTRING(employee.accountnumber,-5))) as pwd
FROM employee ,user WHERE user.employeename= employee.employeename;
xxxx03332
yyyy07674
Но в UPDATE заявление он не работает, так как им настройки колонки пароля, как «NOT NULL» option.when я выполнить в редакторе он показывает ошибки как код ошибки: 1048. Колонка «пароль» не может быть пустым Я попытался ниже запроса, но та же ошибка
UPDATE user password , (SELECT (CONCAT(SUBSTRING(user.username,1,4), SUBSTRING(employee.accountnumber,-5))) FROM employee WHERE user.employeename= employee.employeename);
Если я включать «пользователя» (имя таблицы) в ЕКОМ, появляется сообщение об ошибке, как код ошибки : 1093 Вы не можете указать целевую таблицу «пользователя 'для обновления в FROM FROM Итак, я удалил это в заявлении UPDATE.