为什么字母的BETWEEN命令对于SQL

时间:2017-05-05 18:49:54

标签: mysql sql between

我的问题是我输入查询的原因

SELECT * FROM movies WHERE year BETWEEN 1990 AND 2000;

包括2000年,但是当我输入查询时:

SELECT * FROM movies WHERE name BETWEEN 'A' and 'J'

不包括以J开头的电影。我不明白在查看字母与数字时,between函数的工作方式不一致。我知道您可以使用%来包含它,但我想知道它为什么会这样运作。

3 个答案:

答案 0 :(得分:2)

简而言之,因为List<String> copyString = new ArrayList<>(original); 不等于JJumanji关键字相当于BETWEEN A AND B

答案 1 :(得分:1)

它与SQL无关 以J开头的所有内容(例如JAVA)按字母顺序大于J本身。

答案 2 :(得分:0)

正如Stavr所提到的,SQL不会推断除您使用的文字之外的其他字符。

SELECT * FROM
(
    SELECT 'A Few Good Men' As Movie
        UNION ALL 
    SELECT 'Back to the Future' As Movie
        UNION ALL 
    SELECT 'Call of the Wild' As Movie
        UNION ALL 
        SELECT 'Captain America' As Movie
        UNION ALL 
    SELECT 'D Movie' As Movie
        UNION ALL 
    SELECT 'E Movie' As Movie
        UNION ALL 
    SELECT 'F Movie' As Movie
        UNION ALL 
    SELECT 'G Movie' As Movie
        UNION ALL 
    SELECT 'H Movie' As Movie
        UNION ALL 
    SELECT 'I Movie' As Movie
        UNION ALL 
    SELECT 'J Movie' As Movie
        UNION ALL 
    SELECT 'J Movie 2' As Movie
) it 
WHERE Movie BETWEEN 'A' AND 'J%'