回答
你需要添加通配符%
匹配包含george
SELECT *
FROM customers
WHERE Firstname LIKE '%George%'
任何值210
声明
WHERE Firstname LIKE 'George'
相当于与
WHERE Firstname = 'George'
这就是为什么你只得到一个记录其姓名为george
。
更新1
没有通配符的'LIKE'不等于'='的100%。请参阅:** ['LIKE'运算符](http://dev.mysql.com/doc/refman/5.5/en/string-comparison-functions.html#operator_like)** – 2013-04-22 17:29:10
@ypercube更不用说索引如果存在左侧的通配符则不会使用。 – Kermit 2013-04-23 19:10:09
@FreshPrinceOfSO我的观点只是比较'='和('LIKE'没有通配符)。 – 2013-04-23 19:19:48
您将要包含通配符%
字符包括有George
存在于名行:
SELECT *
FROM customers
WHERE Firstname LIKE '%George%';
如果George
将al方式出现在开头,那么你可以包括结束通配符:
SELECT *
FROM customers
WHERE Firstname LIKE 'George%';
+1 .. downvoters可能是[blank]的追随者。 – Kermit 2013-04-24 01:15:45
尝试
LOWER(Firstname) LIKE '%george%'
处理部分值,避免情况sensietivity问题。
我认为大多数DB都不区分大小写。 – Sunny 2013-04-22 16:46:21
@Sundeep是正确的,你不必担心区分大小写。 – Zane 2013-04-23 22:56:58
无需继续投票......我明白了。 – Silvertiger 2013-04-24 01:17:45
你的整理和字符集是什么? – swasheck 2013-04-22 16:43:56
@swasheck朗姆酒和可乐。 – Kermit 2013-04-24 01:16:06