在MySQL中进行数值计算时,经常需要求取某个字段的算术平方根。SQRT()函数专门用于此目的,但输入负数时会返回NULL。本文将通过语法说明与具体示例,展示该函数的正确用法及边界情况处理,帮助你在查询中安全使用。
SQRT()函数语法与返回值规则
在MySQL中,SQRT(x) 用于返回参数 x 的算术平方根。其基本语法如下:
SQRT(x) -- 返回x的算术平方根
该函数对输入值的处理遵循以下数学规则:
- 当
x为正数时,返回对应的正实数平方根。 - 当
x为 0 时,返回 0。 - 当
x为负数时,函数无法计算实数范围内的平方根,直接返回NULL。
正数、零与负数查询示例
下面通过三条独立的 SELECT 语句,分别测试 25、0 和 -1 的平方根计算结果:
SELECT SQRT(25); SELECT SQRT(0); SELECT SQRT(-1);
执行上述语句后,MySQL 会按顺序返回对应的结果。正数 25 的算术平方根为 5,0 的平方根为 0,而负数 -1 由于超出实数平方根的定义域,返回 NULL。

使用注意事项与常见场景
在实际业务查询中,建议对可能包含负数的字段进行预处理,避免意外返回 NULL 影响后续聚合或排序。常见做法包括:
- 使用
WHERE条件过滤负数记录,例如WHERE value >= 0。 - 结合
ABS()函数先取绝对值再开方,适用于仅需数值大小而不关心符号的场景。 - 在应用层捕获
NULL并给出明确提示,防止前端展示异常。
掌握 SQRT() 的返回值特性后,可将其安全用于几何计算、标准差推导或物理量换算等需要平方根运算的SQL查询中。
