以下代码可以正常工作。
SELECT Message
FROM SystemEventsR
WHERE Message
LIKE CONCAT('%',(SELECT username FROM users LIMIT 1),'%')
但我的问题是,大多数时候我需要返回不止一行。
我省略了导致“错误代码 1242”的 LIMIT
这是为什么?
我需要所有包含至少一个用户名的消息
我也使用了 JOIN 但无济于事
SELECT Message
FROM SystemEventsR
JOIN users ON Message LIKE CONCAT('%',(SELECT username FROM users),'%')
我想要类似下面的东西,但是用户表中的行数不是常量
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),'%')
最佳答案
为什么不简单;
SELECT Message
FROM SystemEventsR s
JOIN users u
ON s.Message LIKE CONCAT('%',u.username,'%')
关于MYSQL:LIKE(子查询)返回多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16882294/