我的问题是我输入查询的原因
SELECT * FROM movies WHERE year BETWEEN 1990 AND 2000;
包括2000年,但是当我输入查询时:
SELECT * FROM movies WHERE name BETWEEN 'A' and 'J'
不包括以J开头的电影。我不明白在查看字母与数字时,between函数的工作方式不一致。我知道您可以使用%来包含它,但我想知道它为什么会这样运作。
答案 0 :(得分:2)
简而言之,因为List<String> copyString = new ArrayList<>(original);
不等于J
。 Jumanji
关键字相当于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%'