2012-07-12 38 views
0

在我的數據庫匹配,我有以下行,如果它是一個重複的,這將增加:MySQL的通配符回報只能用連字符和數字


富-1
富-2
富-3
˚F
F-1
F-2
F-3

直板1

我想查詢分貝,並得到最後f-#。我用下面的LIKE操作嘗試:

SELECT * FROM links WHERE slug LIKE '$slug%' ORDER BY timestamp DESC LIMIT 1"; 

我的問題
如果$塞== f,將它返回富-3而不是F-3。有沒有更好的方法來使用%通配符?

回答

0
SELECT * 
FROM links 
WHERE slug LIKE '$slug-%' OR slug = '$slug' 
ORDER BY timestamp DESC 
LIMIT 1 

的選擇,如果你不想做一個OR,將使用REGEXP比賽。但是,如果您這樣做,您可能會放棄爲查詢使用索引的功能。

+0

我試過'$ slug-%'但是失敗。 – twobergs 2012-07-12 03:33:12

+0

你試過'OR'查詢嗎? – Amber 2012-07-12 03:52:25

+0

是的。使用上面的建議,直到我刪除'$ slug-%'中的連字符後才起作用。 – twobergs 2012-07-12 04:04:41