为什么我的查询返回 "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)
我有以下查询:
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)