使用lastname列的MySql LIKE运算符不起作用

时间:2017-04-24 01:54:51

标签: mysql sql

individual表:

+---------+----------+---------+------------+
| cust_id | fname    | lname   | birth_date |
+---------+----------+---------+------------+
|       1 | James    | Hadley  | 1977-04-22 |
|       2 | Susan    | Tingley | 1973-08-15 |
|       3 | Frank    | Tucker  | 1963-02-06 |
|       4 | John     | Hayward | 1971-12-22 |
|       5 | Charles  | Frasier | 1976-08-25 |
|       6 | John     | Spencer | 1967-09-14 |
|       7 | Margaret | Young   | 1951-03-19 |
|       8 | George   | Blake   | 1982-07-01 |
|       9 | Richard  | Farley  | 1973-06-16 |
+---------+----------+---------+------------+

意图:在第二个位置找到姓氏包含a的人,在e之后的任何地方找到a

我的查询:

SELECT *
FROM individual 
WHERE lname LIKE '_a%e';

返回一个空集。

根据我的理解% matches any number of characters, even zero characters.

除了解决这个问题外,我想了解为什么我的查询失败以及为什么James Hadley和Richard Farley没有被退回?

1 个答案:

答案 0 :(得分:5)

您最后需要另一张通配符,或者它只匹配"中的名称​​结束;":

SELECT *
FROM individual 
WHERE lname LIKE '_a%e%';