2014-05-01 17 views
0

对不清楚的标题感到抱歉。让我通过一个例子来解释我所要求的。mysql中的反向通配符查询(通配符是否驻留在数据库中?)

URI见下表

id | uri  
--------------- 
1 | /admin% 
2 | /cart% 
3 | /account% 

我想,如果我在页面上/cart/checkout/index.php能够查询数据库并获得ID = 2。同样,如果我在/admin/edit.php?id=123我使用该值来查询数据库,并得到id = 1

我如何看待它作为反向通配符查询...通配符驻留在数据库不是查询。

如果这可能,我将不胜感激任何帮助获得这项工作

回答

1

是的。它会像你期望的那样工作:

select ut.* 
from URITable ut 
where @MYURL like ut.URIPattern; 

这不能利用索引,所以它会做顺序扫描。如果表格只有几种模式,那应该没问题。如果您计划以数千种模式进行此操作,性能可能会成为问题。

+0

谢谢。完美工作! – hendr1x