300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql子查询重复利用_mysql – 如何在查询中多次使用子查询的结果

mysql子查询重复利用_mysql – 如何在查询中多次使用子查询的结果

时间:2019-06-27 22:54:05

相关推荐

mysql子查询重复利用_mysql – 如何在查询中多次使用子查询的结果

MySQL查询需要不同位置的子查询结果,如下所示:

SELECT COUNT(*),(SELECT hash FROM sets WHERE ID=1)

FROM sets

WHERE hash=(SELECT hash FROM sets WHERE ID=1)

and XD=2;

有没有办法避免子查询的双重执行(SELECT hash FROM设置WHERE ID = 1)?

子查询的结果始终返回有效的哈希值.

重要的是主查询的结果还包括HASH.

首先,我尝试了这样的JOIN:

SELECT COUNT(*), m.hash FROM sets s INNER JOIN sets AS m

WHERE s.hash=m.hash AND id=1 AND xd=2;

如果XD = 2与行不匹配,则结果为:

+----------+------+

| count(*) | HASH |

+----------+------+

| 0 | NULL |

+----------+------+

而不是像(我需要的):

+----------+------+

| count(*) | HASH |

+----------+------+

| 0 | 8115e|

+----------+------+

有任何想法吗?请告诉我!预先感谢您的任何帮助.

//编辑:

最后,该查询只需计算表中具有相同散列值的所有条目,如ID = 1且XD = 2的条目.如果没有行匹配(如果XD设置为其他数字,则发生此情况),因此返回0并简单地哈希值.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。