Description:
From my understanding, the first query below should return 1 row, but it is actually return empty.
mysql> SELECT t0.c0 FROM t0 WHERE ((t0.c0) IS FALSE) LIKE
-> ((CASE EXISTS (SELECT 1 WHERE FALSE) WHEN ( EXISTS (SELECT 1 WHERE FALSE)) OR ( EXISTS (SELECT 1 WHERE FALSE)) THEN EXISTS (SELECT 1 WHERE FALSE) ELSE 0.19518974353229024 END ));
Empty set (0.00 sec)
mysql> SELECT ALL SUM((((t0.c0) IS FALSE) LIKE
-> ((CASE EXISTS (SELECT 1 WHERE FALSE) WHEN ( EXISTS (SELECT 1 WHERE FALSE)) OR ( EXISTS (SELECT 1 WHERE FALSE)) THEN EXISTS (SELECT 1 WHERE FALSE) ELSE 0.19518974353229024 END ))) IS TRUE) FROM t0;
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| SUM((((t0.c0) IS FALSE) LIKE
((CASE EXISTS (SELECT 1 WHERE FALSE) WHEN ( EXISTS (SELECT 1 WHERE FALSE)) OR ( EXISTS (SELECT 1 WHERE FALSE)) THEN EXISTS (SELECT 1 WHERE FALSE) ELSE 0.19518974353229024 END ))) IS TRUE) |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 1 |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
How to repeat:
DROP TABLE IF EXISTS t0;
CREATE TABLE IF NOT EXISTS t0(c0 NUMERIC ) ;
INSERT IGNORE INTO t0(c0) VALUES(NULL);
SELECT t0.c0 FROM t0 WHERE ((t0.c0) IS FALSE) LIKE
((CASE EXISTS (SELECT 1 WHERE FALSE) WHEN ( EXISTS (SELECT 1 WHERE FALSE)) OR ( EXISTS (SELECT 1 WHERE FALSE)) THEN EXISTS (SELECT 1 WHERE FALSE) ELSE 0.19518974353229024 END ));
SELECT ALL SUM((((t0.c0) IS FALSE) LIKE
((CASE EXISTS (SELECT 1 WHERE FALSE) WHEN ( EXISTS (SELECT 1 WHERE FALSE)) OR ( EXISTS (SELECT 1 WHERE FALSE)) THEN EXISTS (SELECT 1 WHERE FALSE) ELSE 0.19518974353229024 END ))) IS TRUE) FROM t0;