如何使用另一列中的字符串连接列时如何连接2个表?

时间:2011-05-11 20:07:28

标签: mysql

我有这两张桌子:

Table a
id   |    title
12   |    category1


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

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

的表格

感谢名单

3 个答案:

答案 0 :(得分:2)

SELECT *
FROM a JOIN b
   ON a.id = LEFT(REVERSE(b.link),LOCATE('=',REVERSE(b.link))-1)
  1. REVERSE b.link
  2. 在颠倒的b.link
  3. 上找到'='(LOCATE)的第一次出现
  4. 将反转b.link的LEFT部分从0提取到第一次出现'='减1
  5. 的位置

    你也可以这样使用:

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

    第二个选项使用一个函数,然后应该比第一个

    更快

    这未经过测试,但如果您的链接具有完全相同的模式,则应该可以使用

答案 1 :(得分:1)

最好的方法是在表b中添加一个额外的列,并在最初添加记录时通过服务器端脚本添加id。它会让你的SQL快得多

答案 2 :(得分:0)

我会试试这个:

Table a
id   |    title
12   |    category1


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

查询:

Select * FROM a JOIN b ON a.id = b.a_id WHERE a.id = 12