我想使用这个查询,我需要在比较前连接字符串以获得正确的结果。查询正在运行,但未找到任何结果。我相信问题是当我尝试比较WHERE
条款中的“myname”时。任何想法是什么正确的查询呢?Mysql使用SELECT CONCAT结果作为条件在相同的查询
SELECT *
FROM (SELECT CONCAT('tm_',name) AS myname FROM room) room, users
WHERE user_name = myname;
我想使用这个查询,我需要在比较前连接字符串以获得正确的结果。查询正在运行,但未找到任何结果。我相信问题是当我尝试比较WHERE
条款中的“myname”时。任何想法是什么正确的查询呢?Mysql使用SELECT CONCAT结果作为条件在相同的查询
SELECT *
FROM (SELECT CONCAT('tm_',name) AS myname FROM room) room, users
WHERE user_name = myname;
为什么不是
SELECT * FROM users,room where user_name=concat('tm_',name);
?
这么简单,如此明显......但我试图让路径变得复杂:)非常感谢! – Adry
试试这个
SELECT *
FROM
(
SELECT CONCAT('tm_',name) AS myname
FROM room
) t
WHERE user_name = myname
可能是你需要JOIN
其他表users
像这样:
SELECT *
FROM
(
SELECT CONCAT('tm_',name) AS myname
FROM room
) t
INNER JOIN users u ON ... --some join condition
WHERE user_name = myname
或者:
SELECT *
FROM
(
SELECT CONCAT('tm_',name) AS myname
FROM room
) t, users
WHERE t.user_name = myname"
非常感谢您的建议,它不会返回任何结果。我仍然认为这是WHERE子句有罪的名字。幸运的是我们得到了解决方案。 – Adry
您总是可以使用'HAVING'子句来约束聚合数据。 –