在我的数据库中,我有以下行,如果它是重复的,它们将增加:
foo
福-1
福-2
福-3
F
f-1
f-2
f-3
条形
巴-1
我想查询数据库并得到最后一个f-#。我试过使用下面类似的操作符:
SELECT * FROM links WHERE slug LIKE '$slug%' ORDER BY timestamp DESC LIMIT 1";
我的问题
如果$slug == f返回foo-3,而不是f-3。是否有更好的方法使用%通配符?
发布于 2012-07-12 03:00:17
SELECT *
FROM links
WHERE slug LIKE '$slug-%' OR slug = '$slug'
ORDER BY timestamp DESC
LIMIT 1
如果您不想执行OR
,则可以选择使用REGEXP
匹配。但是,如果这样做,您可能会放弃为查询使用索引的能力。
https://stackoverflow.com/questions/11444436
复制相似问题