我有两个看起来像这样的表:
node:
NID Name
1 Chicago
2 New York
3 LA
url_alias:
src dst
user/1 user/Bob
user/2 user/Mike
node/1 node/chicago
node/2 node/new-york
node/3 node/LA
ETC
基本上, url_alias 表有我的网络服务器重定向到的别名 url。如 url 中所示,节点和用户都有“id”。我正在尝试将我的节点表连接到 url_alias 表并匹配“/”(节点 ID)之后的内容。到目前为止,我有这段代码,但它只使用子字符串而不是像这样它也匹配任何以正确数字结尾的用户:
select `node`.`nid` AS `nid`,`node`.`name` AS `name`,`url_alias`.`src` AS `srcurl`,`url_alias`.`dst` AS `dsturl`
from ((`node` join `url_alias` on ((`node`.`nid` = substring(`url_alias`.`src`,6)))))
order by `node`.`nid` desc
(实际上查询有点长,因为它还加入了另一个正在工作的表,但为简单起见,我对其进行了编辑)
此查询返回如下结果:
nid name srcurl dsturl
1 chicago node/1 node/chicago
1 chicago user/1 user/Bob
2 new-york node/1 node/new-york
2 new-york user/1 user/Mike
有没有办法在我的查询中使用“LIKE 'node/%'”,或者类似于在子字符串运行匹配之前只抓取“节点”?