在mysql查询中执行反向通配符的有效方法?

时间:2012-02-07 02:17:58

标签: mysql pattern-matching

我正在写一个Drupal模块,但这个问题不是特定于Drupal的。

Drupal有一个名为menu_router的表,它将人性化的URL与可以提取内容的实际URL相关联。例如:

+--------------------------------------------------------+
| admin/config/media/image-styles/edit/%/add/%           |
| admin/config/media/image-styles/edit/%/effects/%       |
| admin/structure/types/manage/%/comment/fields/%/delete |
| admin/structure/types/manage/%/comment/fields/%/edit   |
+--------------------------------------------------------+

我有一个任意网址,我想确保它实际上映射到网站上的有效网址。但是我不能轻易地进行通配符查询,因为如上所示,通配符字符串已作为列值存在,我的搜索条件将是匹配!

例如,根据Drupal处理URL的方式,'arbitrary/url/string/'将匹配'arbitary/%/string'

有什么方法可以查询是否有任何给定字符串匹配任何通配符的Drupal样式网址?

1 个答案:

答案 0 :(得分:0)

我想你可以在menu_router的行中创建一个大的模式(即每行的模式的OR),然后看看你的目标是否匹配。只要你不需要知道它匹配的menu_router中的哪一行,那就是。