MySql查询 - 不同服务器版本的不同结果

时间:2016-05-12 21:13:47

标签: mysql

我有一个查询从我正在运行的两个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 ,这是不正确和意外的值。

我完全不知道如何解决这个问题,本周末我计划进行服务器升级,但我非常担心其他可能受此影响的类似查询。

附加说明:

  1. 他们都使用完全相同的数据。
  2. 当我在两台服务器上运行内部查询时,它们返回相同的结果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')

  3. 非常感谢有关如何解决这个问题的任何指导/建议 - 不确定MySql中是否有设置或者是什么。

0 个答案:

没有答案