在MySQL中使用LIKE%..%和字段值

Max*_*and 64 mysql sql sql-like

当我需要使用LIKE%..%语句中的字段中的值时,我偶然发现了一个微妙的SQL问题.

例:

SELECT t1.Notes, t2.Name
FROM Table1 t1, Table2 t2
WHERE t1.Notes LIKE '%t2.Name%'
Run Code Online (Sandbox Code Playgroud)

这只是我头脑中的一个例子来展示我需要做什么(我知道这不起作用).我需要在LIKE%..%中使用t2.Name的值

我想当你知道它时,这是微不足道的;)

OMG*_*ies 137

使用:

SELECT t1.Notes, 
       t2.Name
  FROM Table1 t1
  JOIN Table2 t2 ON t1.Notes LIKE CONCAT('%', t2.Name ,'%')
Run Code Online (Sandbox Code Playgroud)

  • 从技术上讲,你可能想要逃避该字段,如果它有%:LIKE CONCAT('%',REPLACE(字段,'%','\%'),'%') (6认同)