在MySQL中将LIKE%..%与字段值一起使用


72

当我需要使用LIKE%..%语句中的字段中的值时,我陷入了一个微妙的SQL问题。

例:

SELECT t1.Notes, t2.Name
FROM Table1 t1, Table2 t2
WHERE t1.Notes LIKE '%t2.Name%'

这只是我脑海中的一个例子,显示了我需要做的事情(我知道这是行不通的)。我需要在LIKE%..%中使用t2.Name的值

我想这很简单;)

Answers:


153

采用:

SELECT t1.Notes, 
       t2.Name
  FROM Table1 t1
  JOIN Table2 t2 ON t1.Notes LIKE CONCAT('%', t2.Name ,'%')

1
谢谢,做到了!Aa我说过,当您知道时,它是微不足道的。但是,我偶然遇到了下一个问题...但是,我将提出一个新问题。谢谢!
Max Kielland 2010年

所有数据库都有解决方案吗?
2013年

在IF语句中的字段中使用LIKE%..%的解决方案?
TechCare99 2015年

6
从技术上讲,如果字段中包含%,则可能需要转义该字段:LIKE CONCAT('%',REPLACE(field,'%','\%'),'%')
dlo

-7
  SELECT t1.a, t2.b
  FROM t1
  JOIN t2 ON t1.a LIKE '%'+t2.b +'%'

因为最后一个答案不起作用

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.