sql >> Databáze >  >> RDS >> Mysql

Odstraňování problémů Nelegální kombinace chyb porovnávání v mysql

To je obecně způsobeno porovnáváním dvou řetězců nekompatibilního řazení nebo pokusem o výběr dat různého řazení do kombinovaného sloupce.

Klauzule COLLATE umožňuje určit řazení použité v dotazu.

Například následující WHERE klauzule vždy uvede chybu, kterou jste odeslali:

WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs

Řešením je zadat sdílené řazení pro dva sloupce v dotazu. Zde je příklad, který používá COLLATE klauzule:

SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;

Další možností je použít BINARY operátor:

BINARY str je zkratka pro CAST(str AS BINARY).

Vaše řešení může vypadat nějak takto:

SELECT * FROM table WHERE BINARY a = BINARY b;

nebo,

SELECT * FROM table ORDER BY BINARY a;


  1. Načíst názvy sloupců a typy uložené procedury?

  2. Místnost pro Android – Jak vymazat sqlite_sequence pro všechny tabulky

  3. Připojte se k serveru MySQL přes SSH v PHP

  4. Jak vytvořit databázi PostgreSQL