【问题标题】:Mysql using SELECT CONCAT results as a condition in the same queryMysql 使用 SELECT CONCAT 结果作为同一查询中的条件
【发布时间】:2012-09-26 12:59:50
【问题描述】:

我正在尝试使用此查询,我需要在比较之前连接一个字符串以获得正确的结果。查询正在运行,但未找到任何结果。我相信问题在于当我尝试比较 WHERE 子句中的“myname”时。知道什么是正确的查询吗?

SELECT * 
FROM (SELECT CONCAT('tm_',name) AS myname FROM room) room, users
WHERE user_name = myname;

【问题讨论】:

  • 您始终可以使用HAVING 子句来约束聚合数据。

标签: mysql sql select concat


【解决方案1】:

为什么不

SELECT * FROM users,room where user_name=concat('tm_',name);

?

【讨论】:

  • 如此简单,如此明显......但我试图使路径复杂化 :) 非常感谢!
【解决方案2】:

试试这个

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 条款上的我的名字是有罪的。幸运的是,我们找到了解决方案。
猜你喜欢
  • 2011-10-29
  • 2013-01-19
  • 2018-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-20
  • 2015-04-24
  • 1970-01-01
相关资源
最近更新 更多