sql >> Database teknologi >  >> RDS >> Mysql

I MySQL fungerer CHAR()-funktionen underligt

Før MySQL 8.0.19 eksisterede det problem, du står over for, ikke. binary-as-hex klientindstillingen er aktiveret som standard fra MySQL 8.0.19.

Kør status eller \s i MySQL. Du vil bemærke en linje om binære data. Hvis det er nævnt som hexadecimalt, output af funktioner som CHAR() og UNHEX() vises som hexadecimal i stedet for normal tekst.

For at undgå dette kan du bruge USING charset-sætningen af ​​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)

Eller du kan bruge --skip-binary-as-hex . De trin, der skal følges i Windows, er:

  1. Åbn kommandoprompt.

  2. Skift bibliotek. I mit tilfælde var kommandoen:

    cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
    
  3. Kør

    mysql -u root -p --skip-binary-as-hex
    
  4. Indtast adgangskoden.

  5. Nu, udgangene af CHAR() funktion bliver, som du forventer, at den skal være.

Bemærk :--skip-binary-as-hex metoden virker, indtil du afslutter MySQL. Du skal bruge --skip-binary-as-hex metode, hver gang du åbner MySQL, således at hexadecimale værdier ikke vises.

Du kan henvise til disse links for mere information:



  1. Hvordan kan jeg liste alle fremmednøgler, der refererer til en given tabel i SQL Server?

  2. Få den venstre del af en streng i SQL Server (T-SQL)

  3. SQL:søg efter en streng i hver varchar-kolonne i en database

  4. Kontrollerer flere kolonner for én værdi