SQL BETWEEN缺少数据

时间:2014-11-05 11:27:08

标签: mysql sql csv

 SELECT Field1
 FROM Table
 WHERE Field1 BETWEEN "A%" AND  "D%"

示例数据:

A432434324324
B435435435
C5654664546
D5465465546546
A768677687
B8768678768
A65446456546
B876867877868

查询结果不会包括" D"行,任何想法如何处理它? (我需要对文本进行操作,而不是数字)。

3 个答案:

答案 0 :(得分:2)

省略通配符并尝试:

WHERE Field1 >= 'A' AND Field1 < 'E'

或者:

WHERE LEFT(Field1, 1) BETWEEN 'A' and 'D'

'%'通配符用于LIKE,不用于其他字符串比较。

两个注释:

  • 第一个版本更好,因为它允许MySQL在Field1上使用索引。
  • 对字符串和日期常量使用单引号;这是所有数据库的通用语法。

答案 1 :(得分:0)

您不能在&#34;之间使用通配符&#34;功能。使用您查询,您将获得A和%符号之间的所有值以及D和%符号。 %符号在数字之前的位置。

答案 2 :(得分:0)

通配符用于搜索。在这里,RDBMS将它们作为文字。 所以,你得到所有的行,以a开头,并且第二个char的值高于'%'的值,并使用第二个char值将所有行调到'D',其值小于'%'的值”。

试     'A'和'DZZZ'之间 或类似的东西。