比較演算子( <
を含む および>
)文字列値と数値を「処理」します。
MySQLの場合
デフォルトでは、文字列の比較では大文字と小文字が区別されず、現在の文字セットが使用されます。デフォルトは
latin1
(cp1252西ヨーロッパ)。これは英語でもうまく機能します。
比較される文字列の文字セット照合で大文字と小文字が区別される場合、つまり文字セットの名前が_cs
で終わる場合、文字列の比較では大文字と小文字が区別されます。 _ci
ではなく 。ここでMySQLリファレンスマニュアルに記載されているすべての情報を繰り返しても意味がありません。
MySQL比較演算子リファレンス:
http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html
MySQL文字セット/照合の詳細:
http://dev.mysql.com/doc/refman/5.5/en/charset.html
あなたが尋ねた特定の質問に答えるには:
Q: これはSQLで文字列を比較するための可能な方法ですか?
A: はい、MySQLとSQLServerの両方で
Q: そしてそれはどのように機能しますか?
A: 比較演算子は、TRUE、FALSE、またはNULLのブール値を返します。
Q: 別の文字列よりも小さい文字列が辞書の順序で前に来ますか?たとえば、ボールは水よりも小さいですか?
A: はい、文字セットの照合では「b」が「w」の前にあるため、式
'ball' < 'water'
TRUEを返します。 (これは文字セットによって異なります および照合 。
Q: この比較では大文字と小文字が区別されますか?
A: 特定の比較で大文字と小文字が区別されるかどうかは、データベースサーバーによって異なります。デフォルトでは、SQLServerとMySQLはどちらも大文字と小文字を区別しません。
MySQLでは、大文字と小文字を区別する文字セット照合を指定することで文字列比較を行うことができます(文字セット名は_ciではなく_csで終わります)
Q: たとえば、BALL <水、大文字はこれらの比較に影響しますか?
A: デフォルトでは、SQL ServerとMySQLの両方で、式
'BALL' < 'water'
TRUEを返します。