PHP 貌似得到了错误的查询结果

PHP seemingly getting wrong query result

所以,我在 SQLYog 中构建了这个查询,它返回了我正在寻找的结果。但是,当我将它复制粘贴到 php 并使用 mysqli 运行 每次查询/获取结果时,我的结果是不同的(即,一个字段为 null 而不是正确的结果)。

查询:

SET SESSION group_concat_max_len = 1000000;
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
    CONCAT(
      'MAX(CASE WHEN field_number = ''',
      wp.field_number,
      ''' 
      THEN ',
      IF(lng.value = NULL, 'wp.value', 'lng.value'),
      ' ELSE NULL END) AS ',
      CONCAT(fm.field_name, IF(fm.rank <> 0, fm.rank, ''))
    )
   )INTO @sql
FROM wp_rg_lead_detail wp
JOIN vh_rg_form_map fm
ON fm.field_number = wp.field_number
AND fm.form_id = wp.form_id
LEFT JOIN wp_rg_lead_detail_long lng
ON wp.id = lng.lead_detail_id
WHERE wp.form_id = 1;

SET @sql = CONCAT('SELECT lead_id,', @sql, ' FROM wp_rg_lead_detail wp 
LEFT JOIN wp_rg_lead_detail_long lng
ON wp.id = lng.lead_detail_id
WHERE form_id = 1 GROUP BY lead_id');

PREPARE stmt FROM @sql;
EXECUTE stmt;

我的结果几乎完全一样,唯一不同的是图片字段。下面是一些区别的图片。

我犯了一个愚蠢的错误:我不得不在 where 子句中添加一个部分以确保我得到一个 lead_id(其中 lead_id = $n)。我仍然不确定为什么我在 php 和 yog 中对同一查询得到不同的响应,但修复我的查询解决了问题。