sql >> Databáze >  >> RDS >> Sqlserver

Porovnání řetězců SQL, větší a menší než operátory

Operátory porovnání (včetně < a > ) "pracovat" s hodnotami řetězců i s čísly.

Pro MySQL

Ve výchozím nastavení se při porovnávání řetězců nerozlišují velká a malá písmena a používá se aktuální znaková sada. Výchozí hodnota je latin1 (cp1252 West European), který také dobře funguje pro angličtinu.

Porovnávání řetězců bude rozlišovat velká a malá písmena, pokud se při řazení znakové sady porovnávaných řetězců rozlišují velká a malá písmena, tj. název znakové sady končí na _cs spíše než _ci . Opravdu nemá smysl opakovat všechny informace, které jsou k dispozici v referenční příručce MySQL zde.

Reference operátorů porovnání MySQL:
http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html

Více informací o MySQL Charactersets/collations:
http://dev.mysql.com/doc/refman/5.5/en/charset.html

Chcete-li odpovědět na konkrétní otázky, které jste položili:

Otázka: je to možný způsob, jak porovnat řetězce v SQL?

Odpověď: Ano, v MySQL i SQL Server

Otázka: a jak to působí?

Odpověď: Operátor porovnání vrací logickou hodnotu, buď TRUE, FALSE nebo NULL.

Otázka: řetězec, který je menší než jiný, předchází ve slovníkovém pořadí? Například míč je méně než voda?

Odpověď: Ano, protože 'b' je před 'w' v řazení znakové sady, tedy výraz

  'ball' < 'water'

vrátí TRUE. (To závisí na znakové sadě a na souboru .

Otázka: a toto srovnání rozlišuje malá a velká písmena?

Odpověď: Zda konkrétní srovnání rozlišuje malá a velká písmena, závisí na databázovém serveru; ve výchozím nastavení SQL Server i MySQL nerozlišují malá a velká písmena.

V MySQL je možné provádět porovnávání řetězců zadáním řazení znakové sady, která rozlišuje malá a velká písmena (název znakové sady bude končit _cs spíše než _ci)

Otázka: Například BALL

Odpověď: Ve výchozím nastavení je v SQL Server i MySQL výraz

  'BALL' < 'water'

vrátí TRUE.



  1. Jak získám min, medián a max z mého dotazu v postgresql?

  2. Příklady DATEPART() v SQL Server

  3. Vysvětlení aliasu SQL

  4. Proč EF generuje SQL dotazy se zbytečnými kontrolami null?