MySQL конвертировать в верхний регистр не работает - PullRequest
2 голосов
/ 08 ноября 2019

Я использую MySQL PASSWORD() ручным способом, поскольку он не работает (устарел) в MySQL 8

CONCAT('*', UPPER(SHA1(UNHEX(SHA1('PWD')))))

Прописные Upper() преобразование не работает с MySQL 5.7.

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 08 ноября 2019

Убедитесь, что вы используете правильный набор символов ..

Возвращает строку str, в которой все символы заменены на прописные в соответствии с текущим отображением набора символов. По умолчанию используется utf8mb4.

https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_upper

, поэтому проверьте свою кодировку и, в конце концов, измените нужное значение в select

и просто предложите, если ошибкия связан с вложенным вызовом, попробуйте использовать вложенный подзапрос, например:

select  concat('*', UPPER(t.col))
 from ( select SHA1(UNHEX(SHA1('PWD'))) col
) t
1 голос
/ 08 ноября 2019

Верхняя функция внутри другой функции не работает в некоторых версиях MySQL. Это ошибка MySQL.

https://bugs.mysql.com/bug.php?id=12903

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