使用 'BETWEEN AND' 和 '[a-b]%' 来比较 SQL 中的字母的区别

difference between using 'BETWEEN AND' and '[a-b]%' to compare the letter in the SQL

我正在 W3resource 上练习一些 SQL 题并遇到了一个问题 '写一个 SQL 语句来查找那些在 'A' 和 'L' 中具有所有其他信息和名字开头的销售员而不是后者。 原来的答案是

    SELECT * FROM salesman WHERE name NOT BETWEEN 'A' and 'L';

我尝试了通配符表达式“[A-L]%”,但它不起作用。

    SELECT * FROM salesman WHERE name LIKE '[^A-L]%'

本题的link是: https://www.w3resource.com/sql-exercises/sql-wildcard-special-operator-exercise-8.php

有人可以对此提供一些解释吗?提前致谢。

两者不等价

任何以 L 开头的单词都匹配 NOT BETWEEN -- "Lowly"、"Likable"、"Lithuanian".

LIKE 根本不匹配任何以 "L" 开头的单词。

等效比较更像是:

where name  < 'A' and name >= 'M'