MySQL语句 - 模式匹配等

时间:2011-10-01 10:50:39

标签: mysql

  

显示1981年4月1日之前hiredate所在的所有行   员工姓名是从A到S

这是我所做的代码,但它不起作用。 :(当我试图将AND放在'%A'和'%S'之间时,它也不起作用。:(当我删除'%S'时,它有效,但它只会检索名称以字母A开头的记录。:(
你们能帮忙吗?我真的不知道该怎么办。 :(

SELECT * 
FROM tblEmployee 
WHERE HIREDATE < '1981-04-1' 
 AND ENAME LIKE '%A' '%S'

感谢。 ^^

3 个答案:

答案 0 :(得分:1)

你很亲密。我想你想从A,B,C,...... S(不是以A-S结尾)的名字开始。正确?

如果是,请尝试:

SELECT * 
FROM tblEmployee 
WHERE HIREDATE < '1981-04-01'    --- notice the  -01
  AND ENAME >= 'A' 
  AND ENAME < 'T'

答案 1 :(得分:1)

使用

SELECT * FROM tblEmployee WHERE HIREDATE < '1981-04-01' AND SUBSTR ( ENAME, 1, 1 ) BETWEEN 'A' AND 'S'

答案 2 :(得分:0)

TRY

SELECT * FROM tblEmployee WHERE HIREDATE < '1981-04-1' AND ENAME REGEXP '^[a-s]+$'

<强> REFERENCE