easy_drinks
という名前のこのテーブルを考えてみましょう。
+------------------+
| drink_name |
+------------------+
| Kiss on the Lips |
| Hot Gold |
| Lone Tree |
| Greyhound |
| Indian Summer |
| Bull Frog |
| Soda and It |
| Blackthorn |
| Blue Moon |
| Oh My Gosh |
| Lime Fizz |
+------------------+
そのようなクエリ、
select drink_name from easy_drinks where drink_name BETWEEN 'G' and 'O';
結果は
+------------------+
| drink_name |
+------------------+
| Kiss on the Lips |
| Hot Gold |
| Lone Tree |
| Greyhound |
| Indian Summer |
| Lime Fizz |
+------------------+
で始まるドリンク名O
は結果に含まれません。しかし、マニュアルページによると
expr BETWEEN min AND max
expr が min 以上で expr がmax 以下の場合、BETWEEN は 1 を返し、それ以外の場合は 0 を返します。 expr が min 以上で expr が max 以下の場合、BETWEEN > を返します。 1、それ以外の場合は 0 を返します。
クエリでこのような結果が得られるのはなぜですか?
Timestamp と Date の動作を説明する質問をしてきました。この場合の理由は何ですか?