如何将列名组合到MySQL的"LIKE"子句中

7
我希望将两个表格t1t2连接起来,使得t2表格中的列值为任何有效字符串(包括null),后面跟着t表格列中的一个值

我想要像这样的语句:

SELECT * FROM t_cities c JOIN temp_table t ON c.NAME LIKE "%t.token"但不知道确切的语法。上述语句当然会出错。


1
你应该意识到这个连接操作永远不会使用索引,因此会对性能造成噩梦般的影响。重新设计你的数据库结构... - fancyPants
1
这里并不完全清楚你在问什么,但听起来你可能有潜在的糟糕数据库设计问题,应该在尝试使用非正统连接技术之前先加以解决。 - Spudley
2个回答

15

尝试使用这个查询,它应该可以正常工作。

SELECT * FROM t_cities as a  
JOIN temp_table as b  
ON a.NAME   LIKE concat("%",b.token);

注意- 这个查询不会像普通的连接那样快,需要时间。


2
谢谢,运行良好!目前性能不是一个标准,所以这样就可以了。 - Aneesh

-1

尝试

    SELECT *
  FROM t_cities c
  JOIN temp_table t ON c.field = t.field
 where c.NAME LIKE "%t.token"

1
肯定行不通,给定“%t.token”将使用token作为硬编码值而不是列值。 - Ankit Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接