MYSQL:LIKE(子查询)返回许多行

Apo*_*nis 1 mysql rows subquery sql-like

以下代码正常工作.

SELECT Message
FROM SystemEventsR
WHERE Message
LIKE CONCAT('%',(SELECT username FROM users LIMIT 1),'%')
Run Code Online (Sandbox Code Playgroud)

我的问题是,大多数时候我需要返回多行.

我省略LIMIT,导致'错误代码1242'

为什么是这样?

我需要包含至少一个用户名的所有邮件

我也使用了JOIN但无济于事

SELECT Message
FROM SystemEventsR
JOIN users ON Message LIKE CONCAT('%',(SELECT username FROM users),'%')
Run Code Online (Sandbox Code Playgroud)

我想要类似下面这样的东西,但用户表中的行数不是常量

SELECT Message
FROM SystemEventsR
WHERE 
Message LIKE CONCAT('%',(SELECT username FROM users LIMIT 1,1),'%') OR
Message LIKE CONCAT('%',(SELECT username FROM users LIMIT 2,1),'%') OR
Message LIKE CONCAT('%',(SELECT username FROM users LIMIT 3,1),'%')
Run Code Online (Sandbox Code Playgroud)

Joa*_*son 5

为什么不简单;

SELECT Message 
FROM SystemEventsR s
JOIN users u
  ON s.Message LIKE CONCAT('%',u.username,'%')
Run Code Online (Sandbox Code Playgroud)

一个要测试的SQLfiddle.