如何防止MariaDB简化逻辑表达式
How to prevent MariaDB from simplfiying logical expressions
我在使用 MariaDB 10 时遇到了一个非常奇怪的问题,它自动简化了一些逻辑表达式!!
这是一个例子
CREATE VIEW test AS
SELECT 1
FROM test_table
WHERE NOT (1 < 2 OR 3 > 4);
SHOW CREATE VIEW test;
CREATE ALGORITHM = UNDEFINED
DEFINER =`root`@`localhost`
SQL SECURITY DEFINER VIEW `test` AS
SELECT 1 AS `1`
FROM `test_table`
WHERE ((1 >= 2) AND (3 <= 4))
如您所见,它已将表达式 NOT (1 < 2 OR 3 > 4) 转换为 ((1 >= 2) AND (3 < = 4))
因为它在间隔情况下不正确
MariaDB 应用了 http://en.wikipedia.org/wiki/De_Morgan%27s_laws 之一。为什么你认为它不正确?
我在使用 MariaDB 10 时遇到了一个非常奇怪的问题,它自动简化了一些逻辑表达式!! 这是一个例子
CREATE VIEW test AS
SELECT 1
FROM test_table
WHERE NOT (1 < 2 OR 3 > 4);
SHOW CREATE VIEW test;
CREATE ALGORITHM = UNDEFINED
DEFINER =`root`@`localhost`
SQL SECURITY DEFINER VIEW `test` AS
SELECT 1 AS `1`
FROM `test_table`
WHERE ((1 >= 2) AND (3 <= 4))
如您所见,它已将表达式 NOT (1 < 2 OR 3 > 4) 转换为 ((1 >= 2) AND (3 < = 4)) 因为它在间隔情况下不正确
MariaDB 应用了 http://en.wikipedia.org/wiki/De_Morgan%27s_laws 之一。为什么你认为它不正确?