Mysql
 sql >> база данни >  >> RDS >> Mysql

В MySQL функцията CHAR() работи странно

Преди MySQL 8.0.19 проблемът, пред който сте изправени, не е съществувал. binary-as-hex клиентската опция е активирана по подразбиране от MySQL 8.0.19.

Изпълнете status или \s в MySQL. Ще забележите ред за двоични данни. Ако е споменат като шестнадесетичен, изходи на функции като CHAR() и UNHEX() ще се покаже като шестнадесетичен вместо нормален текст.

За да избегнете това, можете да използвате клаузата USING charset на CHAR() .

mysql> SELECT CHAR(97);
+--------------------+
| CHAR(97)           |
+--------------------+
| 0x61               |
+--------------------+
1 row in set (0.00 sec)

mysql> SELECT CHAR(97 USING utf8mb4);
+------------------------+
| CHAR(97 USING utf8mb4) |
+------------------------+
| a                      |
+------------------------+
1 row in set (0.00 sec)

Или можете да използвате --skip-binary-as-hex . Стъпките, които трябва да следвате в Windows, са:

  1. Отворете командния ред.

  2. Променете директорията. В моя случай командата беше:

    cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
    
  3. Бягай

    mysql -u root -p --skip-binary-as-hex
    
  4. Въведете паролата.

  5. Сега изходите на CHAR() функцията ще бъде такава, каквато очаквате да бъде.

Забележка :--skip-binary-as-hex методът работи, докато не излезете от MySQL. Трябва да използвате --skip-binary-as-hex метод всеки път, когато отворите MySQL, така че шестнадесетичните стойности да не се показват.

Можете да се обърнете към тези връзки за повече информация:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. RDS проксито влияе ли на текущото обединяване от страна на приложението?

  2. PHP - извличане на подготвен stmt в клас:Класът за фатална грешка не е намерен

  3. Множество маси се съединяват в релси

  4. Хибернация, свързване на две таблици и извличане на всички записи?

  5. Как да конвертирате epoch в mySQL timestamp в JAVA