如何将两条MySQL查询合并为单条实现变量计算与条件过滤?
合并MySQL动态变量计算与WHERE过滤为单条SELECT语句
你可以通过两种方式将两条语句合并为单条,同时输出所需字段并完成过滤:
方式一:使用子查询(推荐,避免变量依赖)
直接在子查询中计算出bitcoin和cash_value字段,在外层查询中过滤符合条件的记录:
SELECT address, bitcoin, cash_value FROM ( SELECT address, (value / POWER(10, 8)) AS bitcoin, (value / POWER(10, 8)) * 43913.7515932587 AS cash_value FROM knownaddresses_bitcoin WHERE address = '111111111111111111112czxoHN' ) AS temp WHERE cash_value > 1;
方式二:使用用户变量+HAVING子句
利用HAVING在行处理后执行的特性,直接引用已赋值的用户变量进行过滤:
SELECT @address := address, @bitcoin := (value / POWER(10, 8)), @cash_value := @bitcoin * 43913.7515932587 FROM knownaddresses_bitcoin WHERE address = '111111111111111111112czxoHN' HAVING @cash_value > 1;
两种方式都能输出原表的address字段、计算后的@bitcoin和@cash_value,且仅保留cash_value > 1的记录。
内容的提问来源于stack exchange,提问作者Joshua Briefman
相关产品推荐
相关产品推荐

