2013-12-11 57 views
1

當我用像我的SQL語句,SQL LIKE只有一個字母

例如,

 SELECT * FROM table WHERE name = "%k" 

這將返回所有行,其中name日k結束。

它可以返回:好吧,OOK,OOOk,

我該怎麼辦相同的語句,但有一個字母,所以它僅返回好。

或2個字母,所以它只返回OOk?

回答

0

使用等號(=)或IN操作代替LIKE操作的:

SELECT * FROM table WHERE name IN ('Ok', 'OOk') 
+0

有更多的行,我不需要只有兩個。我需要sql來選擇以'k'結尾的行並且長度爲2個字符 – user3090649

+0

在這種情況下,使用'WHERE name LIKE'%k'AND LEN(name)= 2' – Dan

6

_是單個字符通配符。

SELECT * FROM table WHERE name = `_k` 

看到這個IBM Reference

+0

是的,那就是我真正需要的!謝謝 ! – user3090649

+0

@ user3090649很高興能幫到你! –

0

使用通配符_。它只匹配一個字符。

_k好的。 __k用於OOK

0

取決於你提供

對於1個字符 'X',其後爲K

Select * 
from table 
where length(name) = 2 
AND name = "%k" 

對於2個字符的 'X',其後爲K的長度

Select * 
from table 
where length(name) = 3 
AND name = "%k" 
0

您應該使用下劃線(_)字符。請參閱有關operator LIKE的文檔。

所以,查詢,你需要(k前1或2個字符)是:

SELECT * FROM table WHERE name LIKE '_k' OR name LIKE '__k' 
相關問題