我是一个新手。我想从MySQL连接3个字段(city,provinceName,countryName)到逗号分隔的字符串中,并以“city”作为关键字返回JSON中的字符串。我无法获取字符串,也无法将它们构建为JSON中的完整文本。我的PHP是:将多个MySQL字段连接成一个JSON响应
$fetch = mysql_query("SELECT DISTINCT city GROUP_CONCAT(DISTINCT city, stateProvinceName, countryName SEPARATOR ',') FROM neighborhoods
WHERE countryAbbreviation='$countryAbbreviation' AND stateProvinceName IS NOT NULL
") or die(mysql_error());
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)){
$row_array['city'] = $row['city'];
array_push($return_arr,$row_array);
}
echo json_encode($return_arr);
当我测试查询时,它不是用逗号分隔的。相反,我得到了魁北克城魁北克队的加拿大队。当我运行该网站时,JSON响应仅为{“city”:“Quebec City”}。期望的响应是{“city”:“魁北克市,魁北克省,加拿大”} - 或者在一般情况下,多个“城市”对象。
我应该改变什么。请具体说明。我没有很好地遵循一般说明。
这是一个很大的进步,因为我得到了3个字段,但他们没有逗号。我得到[{“city”:“Quebec CityQuebecCanada”}] –
GROUP_CONCAT在我的MySQLWorkbench中以粉红色显示。这可能意味着什么,但我不知道是什么。测试查询不会连接逗号。 –
尝试使用'CONCAT_WS'而不是'GROUP_CONCAT'。 'GROUP_CONCAT'与'GROUP_BY'一起使用。我已经更新了答案。但也许你想按这些结果分组? –