Like中的子查询字段

时间:2013-08-02 15:39:45

标签: mysql subquery mysql-error-1054 sql-like

我有以下查询:

SELECT
(...),
(SELECT us.short FROM url_short us WHERE us.urlId = u.id
  ORDER BY us.id DESC LIMIT 1) as short, 
(...),
(SELECT f.name FROM `group` f LEFT JOIN group_url fu ON f.id = fu.group_id WHERE
  fu.url_id = u.id ORDER BY f.id DESC LIMIT 1) as f_name
FROM (...)
WHERE (...) AND
(u.url LIKE '%ops%'
OR short LIKE '%ops%'
OR u.url_name LIKE '%ops%'
OR f_name LIKE '%ops%')
(...)

但是,当我尝试在shortf_group中使用LIKE时,MySQL会告诉我:

#1054 - Unknown column 'short' in 'where clause'

我已经搜索了很多但没有找到任何内容

2 个答案:

答案 0 :(得分:2)

你的where子句没有看到short别名,因为它只是通过过滤结果集后发生的引入(由最外面的{{实现) 1}}子句)。

WHERE

答案 1 :(得分:1)

您在查询中使用别名,这可能会导致此错误。 Here's另一个有类似问题的问题。