Description
In theory, sql1 and sql2 should return the same result, however,sql1 return Empty set while sql2 return 0.0000
SQL1:
SELECT f1 FROM (SELECT (t0.c0) / (PERIOD_ADD(196802,2)) AS f1 FROM t0) AS t WHERE f1;
|
SQL2:
SELECT f1 FROM (SELECT (t0.c0) / (PERIOD_ADD(196802,2)) AS f1, ((t0.c0) / (PERIOD_ADD(196802,2))) IS TRUE AS flag FROM t0) AS t WHERE flag=1;
|
How to repeat
DROP DATABASE IF EXISTS database0;
|
CREATE DATABASE database0;
|
USE database0;
|
CREATE TABLE t0(c0 INT) ;
|
INSERT INTO t0(c0) VALUES(0.6799213532830038);
|
|
version
|
|
SELECT version();
|
|
+----------------+
|
| version() |
|
+----------------+
|
| 11.4.0-MariaDB |
|
+----------------+
|
1 row in set (0.00 sec)
|
SELECT f1 FROM (SELECT (t0.c0) / (PERIOD_ADD(196802,2)) AS f1 FROM t0) AS t WHERE f1;
|
|
Empty set (0.00 sec)
|
SELECT f1 FROM (SELECT (t0.c0) / (PERIOD_ADD(196802,2)) AS f1, ((t0.c0) / (PERIOD_ADD(196802,2))) IS TRUE AS flag FROM t0) AS t WHERE flag=1;
|
|
+-----------+
|
| f1 |
|
+-----------+
|
| 0.0000 |
|
+-----------+
|
|