Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 是否重写SQL子查询以加入?_Mysql_Sql - Fatal编程技术网

Mysql 是否重写SQL子查询以加入?

Mysql 是否重写SQL子查询以加入?,mysql,sql,Mysql,Sql,是否可以从此SQL中删除子查询?我需要根据比赛的比分排序,但显然不能根据别名排序 SELECT * FROM (SELECT b.shortDesc, b.img, sm.uri, match(`bodyCopy`, `shortDesc`) against ('Storage' IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION) AS score FROM `blog` b J

是否可以从此SQL中删除子查询?我需要根据比赛的比分排序,但显然不能根据别名排序

SELECT *
FROM
  (SELECT b.shortDesc,
          b.img,
          sm.uri,
          match(`bodyCopy`, `shortDesc`) against ('Storage' IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION) AS score
   FROM `blog` b
   JOIN `sitemap` sm ON sm.id = b.pageId
   WHERE 'Active' IN (b.status, sm.status)
  ) t1
WHERE score > 0
ORDER BY score DESC
在这里:

在这里:


您可以删除子查询:

SELECT b.shortDesc,
       b.img,
       sm.uri,
       match(`bodyCopy`, `shortDesc`) against ('Storage' IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION) AS score
FROM `blog` b
JOIN `sitemap` sm ON sm.id = b.pageId
WHERE 'Active' IN (b.status, sm.status)
HAVING score > 0
ORDER BY score DESC
在计算结果之前,分数的值是未知的。这意味着它不能用在WHERE子句中。相反,它可以用于拥有。最后应用的顺序,可以在此处使用分数


文档:同样对于拥有和订购

您可以去掉子查询:

SELECT b.shortDesc,
       b.img,
       sm.uri,
       match(`bodyCopy`, `shortDesc`) against ('Storage' IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION) AS score
FROM `blog` b
JOIN `sitemap` sm ON sm.id = b.pageId
WHERE 'Active' IN (b.status, sm.status)
HAVING score > 0
ORDER BY score DESC
在计算结果之前,分数的值是未知的。这意味着它不能用在WHERE子句中。相反,它可以用于拥有。最后应用的顺序,可以在此处使用分数


文档:同样对于have和ORDER

一目了然,使用HAVING子句可能会起作用。我需要一个你的模式转储来确定。乍一看,使用HAVING子句可能会奏效。我需要一个你的模式转储,以确保。所以分数可以在有和顺序,但不是在哪里?谢谢。这么多年过去了,我还是个SQL高手+1,但请注意HAVING子句的使用是其他数据库语言中不存在的MySQL扩展。如果我没有使用MySQL(我正好是),你会如何在where子句中使用score?@keyboardSmasher它实际上取决于特定的数据库;有些允许引用别名,有些则不允许。有些仅在GROUPBY子句存在时才允许HAVING子句。请注意,所有数据库都有自己的实现,因此请始终参考文档以了解您使用的确切版本。因此,分数可以按顺序排列,但不能按位置排列?谢谢。这么多年过去了,我还是个SQL高手+1,但请注意HAVING子句的使用是其他数据库语言中不存在的MySQL扩展。如果我没有使用MySQL(我正好是),你会如何在where子句中使用score?@keyboardSmasher它实际上取决于特定的数据库;有些允许引用别名,有些则不允许。有些仅在GROUPBY子句存在时才允许HAVING子句。请注意,所有数据库都有自己的实现,因此请始终参考文档以了解您使用的确切版本。谢谢,但是您的回答失败了。这就是我创建子查询的原因:“where子句”中的未知列“score”谢谢,但是您的答案失败了。这就是我创建子查询的原因:“where子句”中的未知列“score”