在我的数据库中,我有以下行,如果它是重复的话会增加:
foo
foo-1
foo-2
foo-3
˚F
f-1
F-2
F-3
酒吧
直板1
我想查询数据库并获取最后一个f - #。我尝试过使用下面的LIKE运算符:
SELECT * FROM links WHERE slug LIKE '$slug%' ORDER BY timestamp DESC LIMIT 1";
我的问题
如果$ slug == f它返回foo-3而不是f-3。有没有更好的方法来使用%通配符?
答案 0 :(得分:0)
SELECT *
FROM links
WHERE slug LIKE '$slug-%' OR slug = '$slug'
ORDER BY timestamp DESC
LIMIT 1
如果您不想OR
,则替代方法是使用REGEXP
匹配。但是,如果这样做,您可能会放弃使用查询索引的功能。