繁体   English   中英

如何从 varchar 字段中提取 ID 并加入另一个表?

[英]How can I pull an ID from a varchar field and JOIN another table?

我有一个名为“click_target”的字段,它存储类似于以下的数据字符串:

http://domain.com/deals/244?utm_source=sendgrid.com&utm_medium=email&utm_campaign=website

使用 MySQL 查询,是否可以从字符串中提取 ID (244) 并使用它来加入另一个表?

您当然可以使用表达式玩游戏以从该字符串中提取 ID,但我有一个更大的担心 - 您正在将 URL 格式的依赖关系烧毁到数据库中的查询中。 这不是一个好主意,因为当(我不是说如果)URL 更改时,您的查询会突然静默失败 - 没有错误,只是空的(如果幸运的话)或无意义的结果。

这是一个丑陋的黑客,但我相信这行会在上面的 url 中为你提取你的 ID。

REVERSE(LEFT(LOCATE('/', REVERSE(LEFT(click_target, LOCATE('?', click_target)-1)))-1))

基本上,我得到了第一个“?”之间的文字。 和最后一个'/'。 从那里您可以使用该值加入您想要的任何表,但我建议将其别名化或将其存储在变量中,以便不经常重新计算它。

如果您需要 id,请修复您的数据库以将其正确存储在单独的字段中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM