为什么我的查询返回 "OK" 而不是行?

Why is my query returning "OK" instead of rows?

我有以下查询:

SELECT
    (sign(mr.p1_h2h_win_one_time - mr.p2_h2h_win_one_time)) AS h2h_win_one_time_1,
    (abs(mr.p1_h2h_win_one_time - mr.p2_h2h_win_one_time) ^ 2) AS h2h_win_one_time_2
FROM belgarath.match_result AS mr
LIMIT 10

哪个returns:

但是,当我尝试将两个字段相乘时:

SELECT 
(
    sign(mr.p1_h2h_win_one_time - mr.p2_h2h_win_one_time)
) * 
(
    abs(mr.p1_h2h_win_one_time - mr.p2_h2h_win_one_time) ^ 2
) AS h2h_win_one_time_comb
FROM belgarath.match_result AS mr
LIMIT 10

Workbench 只是 returns OK 而不是任何行。

做一些调查,如果我使用 LIMIT 2,我可以显示前两行。查看上面的返回值,我猜想乘以第 3-10 行的负值或零值一定有问题。但是,这可以简单地在计算器上完成,所以我错过了什么?

也许您认为运算符 ^ 是幂运算符,但实际上它是 Bitwise XOR operator.

MySql 具有适合您的情况的函数 pow()

pow(abs(mr.p1_h2h_win_one_time - mr.p2_h2h_win_one_time), 2)