【问题标题】:Mysql Concat is displaying byte arrayMysql Concat 显示字节数组
【发布时间】:2018-11-12 19:33:36
【问题描述】:

我是 mysql 的新手。我有代码,但它显示字节数组,为什么? 对不起我的英语:(

SELECT p.city_id,p.name city, CONCAT("[", 
GROUP_CONCAT(CONCAT('{id:"', a.id, '", address:"', a.address, '"}')), 
"]") As sahalar 
FROM cities AS p LEFT JOIN carpet_fields As a ON(p.city_id = a.city_id) 
GROUP BY p.city_id, p.name ORDER BY p.city_id

它必须是显示json数据但是。结果是

错误的结果

 city_id  name   sahalar
1        ADANA  0x5B7B69643A223236222C20616464726573733A2248757A75

正确的结果

city_id name sahalar 
1       ADANA [{id:"1A", address:"Huzurevleri Mah.77232 Sk. ADANA / ÇUKUROVA"},{id:"1B", address:"KARSLILAR MAH. 82008. SOK. / MAHFESIGMAZ"}]

【问题讨论】:

  • 在连接之前尝试将数字转换为字符串(或在CONCAT 函数中部署转换为字符串,例如将其应用于a.id)。
  • 这次它给了我演员错误。你可以点击这个链接查看错误i.hizliresim.com/X6DP36.png
  • Out NW 安全阻止访问您发布的链接。不过,我看到 id 也是一个字符串......(因此不需要强制转换)。您在哪里看到错误的 JSON?可以在数据库中打印吗?
  • 在数据库中。海蒂我的 sql 查询
  • 我添加了图片,但没有显示

标签: mysql concat group-concat


【解决方案1】:

我找到了解决办法

SET SESSION group_concat_max_len = 1000000; 
SELECT p.city_id,p.name city, 
CONCAT("[", 
GROUP_CONCAT( CONCAT('{id:"', CAST(a.id as char(10)), '", address:"', a.address, '"}') ), 
"]") As sahalar 
FROM cities AS p 
LEFT JOIN carpet_fields As a ON(p.city_id = a.city_id)  
GROUP BY p.city_id, p.name ORDER BY p.city_id

【讨论】:

    猜你喜欢
    • 2017-04-02
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    相关资源
    最近更新 更多