Jossy
Jossy

Reputation: 1007

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

I have the following query:

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

Which returns:

enter image description here

However, when I try to multiply the two fields:

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 simply returns OK instead of any rows.

Doing some investigation I can get the first two rows to display if I use LIMIT 2. Looking at the returned values above I guess there must be some issue with multiplying the minus values or zero values from rows 3-10. However, this can be done simply on a calculator so what am I missing?

Upvotes: 0

Views: 674

Answers (1)

forpas
forpas

Reputation: 164139

Maybe you think that the operator ^ is the power operator when in fact it is the Bitwise XOR operator.

MySql has the function pow() for your case:

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

Upvotes: 1

Related Questions