2013-04-22 220 views
-1
SELECT * 
FROM customers 
WHERE Firstname LIKE 'George' 

的問題是,我在與塔的名字喬治和查詢結果表超過1行顯示只有一行SQL查詢只返回一行(像)

+2

你的整理和字符集是什麼? – swasheck 2013-04-22 16:43:56

+0

@swasheck朗姆酒和可樂。 – Kermit 2013-04-24 01:16:06

回答

4

你需要添加通配符%匹配包含george

SELECT * 
FROM customers 
WHERE Firstname LIKE '%George%' 
任何值210

聲明

WHERE Firstname LIKE 'George' 

相當於與

WHERE Firstname = 'George' 

這就是爲什麼你只得到一個記錄其姓名爲george

更新1

+3

沒有通配符的'LIKE'不等於'='的100%。請參閱:** ['LIKE'運算符](http://dev.mysql.com/doc/refman/5.5/en/string-comparison-functions.html#operator_like)** – 2013-04-22 17:29:10

+0

@ypercube更不用說索引如果存在左側的通配符則不會使用。 – Kermit 2013-04-23 19:10:09

+0

@FreshPrinceOfSO我的觀點只是比較'=​​'和('LIKE'沒有通配符)。 – 2013-04-23 19:19:48

5

您將要包含通配符%字符包括有George存在於名行:

SELECT * 
FROM customers 
WHERE Firstname LIKE '%George%'; 

如果George將al方式出現在開頭,那麼你可以包括結束通配符:

SELECT * 
FROM customers 
WHERE Firstname LIKE 'George%'; 
+1

+1 .. downvoters可能是[blank]的追隨者。 – Kermit 2013-04-24 01:15:45

-2

嘗試

LOWER(Firstname) LIKE '%george%' 

處理部分值,避免情況sensietivity問題。

+0

我認爲大多數DB都不區分大小寫。 – Sunny 2013-04-22 16:46:21

+0

@Sundeep是正確的,你不必擔心區分大小寫。 – Zane 2013-04-23 22:56:58

+0

無需繼續投票......我明白了。 – Silvertiger 2013-04-24 01:17:45