sql >> Databasteknik >  >> RDS >> Mysql

I MySQL fungerar CHAR()-funktionen konstigt

Före MySQL 8.0.19 fanns inte problemet som du står inför. binary-as-hex klientalternativet är aktiverat som standard från MySQL 8.0.19.

Kör status eller \s i MySQL. Du kommer att märka en rad om binära data. Om det nämns som hexadecimalt, utdata av funktioner som CHAR() och UNHEX() kommer att visas som hexadecimal istället för normal text.

För att undvika detta kan du använda USING charset-satssatsen för 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 så kan du använda --skip-binary-as-hex . Stegen att följa i Windows är:

  1. Öppna kommandotolken.

  2. Byt katalog. I mitt fall var kommandot:

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

    mysql -u root -p --skip-binary-as-hex
    
  4. Ange lösenordet.

  5. Nu, utdata från CHAR() funktionen blir som du förväntar dig.

Obs :--skip-binary-as-hex Metoden fungerar tills du avslutar MySQL. Du måste använda --skip-binary-as-hex metod varje gång du öppnar MySQL så att hexadecimala värden inte kommer att visas.

Du kan hänvisa till dessa länkar för mer information:



  1. Tar bort objekt från ListView och Database med OnItemClickListener

  2. Hur man listar alla lagrade procedurer i Oracle Database

  3. MySQL:Beställ efter fältstorlek/längd

  4. Fyll en sträng med inledande nollor så att den är 3 tecken lång i SQL Server 2008