2014-11-05 64 views
0
SELECT Field1 
FROM Table 
WHERE Field1 BETWEEN "A%" AND "D%" 

示例数据:SQL之间丢失的数据

A432434324324 
B435435435 
C5654664546 
D5465465546546 
A768677687 
B8768678768 
A65446456546 
B876867877868 

查询结果不会包括“d”行,任何想法如何应对呢? (我需要操作文本,而不是数字)。

+0

@哈利:你看过这个问题,错过了代码吗? – 2014-11-05 11:29:03

+0

@哈里:它被标记,因为MySQL也是SQL。 – 2014-11-05 11:29:26

+0

我读过了,简单的复制粘贴错误@juergend – Haris 2014-11-05 11:29:31

回答

2

离开了通配符和尝试:

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

或者:

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

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

有两点需要注意:

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

您不能在“between”函数中使用通配符。通过查询,您可以获得A与%符号,D符号和%符号之间的所有值。 %符号位于数字之前。

0

通配符用于搜索。这里RDBMS将它们视为文字。 所以,你得到所有以a开头的行,并且有一个值高于'%'值的第二个字符,并且将所有行的值都设置为'D',第二个字符的值小于' %”。

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