mysql - 将一列与另一列中的字符串连接时如何连接 2 个表?

标签 mysql

我有这两张表:

Table a
id   |    title
12   |    category1


Table b
id   |    link
45   |    index.php&view=myview&id=12

如何加入 a.id =(b.link 内的 id)的表

谢谢

最佳答案

SELECT *
FROM a JOIN b
   ON a.id = LEFT(REVERSE(b.link),LOCATE('=',REVERSE(b.link))-1)
  1. > REVERSE b.链接
  2. 查找反向 b.link 上第一次出现的“=”( LOCATE )
  3. 提取 LEFT反向 b.link 的一部分,从 0 到第一次出现“=”的位置减 1

您也可以这样使用 RIGHT:

SELECT *
FROM a JOIN b
   ON a.id = RIGHT(b.link,LOCATE('=',REVERSE(b.link))-1)

第二个选项少使用一个函数,应该比第一个选项更快

这尚未经过测试,但如果您的链接具有相同的模式,它应该可以工作

关于mysql - 将一列与另一列中的字符串连接时如何连接 2 个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5969989/

相关文章:

mysql - multiprocessing.Pool 执行并发子进程以从 mysqldump 传输数据

mysql - 没有 WHERE 子句的 SQL 查询优化

mysql - 从mysql中获取每个项目的最后输入记录

mysql - 按顺序忽略字符串中的字符

mysql时钟

mysql - 寻找正确的查询

MySQL,删除重复项

java - 什么 JDBC 属性对应于 mysql 命令行的 "--skip-secure-auth"选项?

php - 将 MySQL 登录脚本转换为 PDO

Mysql三表join聚合列和group by