我有一个查询从我正在运行的两个MySql服务器返回两个不同的结果。
这是查询(由Entity Framework生成,我直接在MySql中运行它以确保结果以不同的方式从每个服务器返回):
SELECT
CASE WHEN Project1.C1 IS NULL THEN '5' ELSE Project1.data_entered END AS C1
FROM ( SELECT 1 AS X) AS SingleRowTable1
LEFT OUTER JOIN (SELECT
Extent1.data_entered,
1 AS C1
FROM rta_option_data AS Extent1
INNER JOIN rta_option_field AS Extent2 ON Extent1.rta_option_field_id = Extent2.rta_option_field_id
WHERE (Extent1.customer_id = 1546) AND (Extent2.Name = 'txtAdverseDelay') ) AS Project1 ON 1 = 1
服务器A正在运行MySql 5.5.28并返回5 ,这是正确的和预期的值。
服务器B正在运行MySql 5.7.12-log并返回null ,这是不正确和意外的值。
我完全不知道如何解决这个问题,本周末我计划进行服务器升级,但我非常担心其他可能受此影响的类似查询。
附加说明:
当我在两台服务器上运行内部查询时,它们返回相同的结果data_entered = null和C1 = null。这是我正在谈论的内部查询:
选择 Extent1.data_entered, 1 AS C1 FROM rta_option_data AS Extent1 INNER JOIN rta_option_field AS Extent2 ON Extent1.rta_option_field_id = Extent2.rta_option_field_id WHERE(Extent1.customer_id = 1546)AND(Extent2.Name ='txtAdverseDelay')
非常感谢有关如何解决这个问题的任何指导/建议 - 不确定MySql中是否有设置或者是什么。