是否在偏移量之间进行SQL



搜索以字母'd','e'和'f'我的代码开头的电影

SELECT *
FROM movies
WHERE name BETWEEN 'D%' AND 'G%';

为什么" g"上升而不是'f',尤其是当以下代码中的上升是1979年而不是1980年以寻找70年代的电影时?为什么第一个示例需要被一个示例抵消,而下面的示例则不呢?

SELECT *
FROM movies
WHERE year BETWEEN 1970 and 1979;

之间的函数之间的文本和数字值相同,如下所示。它在范围的顶部和底部都包含在内。我会检查几件事:

  • 您确定您的电影以G开头吗?否则,肯定只会返回d。
  • 当您使用f字母时,您的代码看起来像这样: SELECT * FROM movies WHERE name BETWEEN 'D%' AND 'F%';

如果没有,请尝试使用~字符,例如SELECT * FROM movies WHERE name BETWEEN 'D' AND 'G~'。另外,此链接还有其他一些细节可能对您有所帮助。

表达式

name between 'D' and 'G'

等于

name>='D' and name<='G'

在此示例中,Dark Knight可以工作,但是Goat不会因为Goat > G

表达式

name between '1970' and '1979'

等于

name>='1970' and name<='1979'

1979 <= 1979工作!

最新更新