小编Bra*_*jns的帖子

SQL GROUP_CONCAT分成不同的列

我搜索了很多,但没有找到解决问题的正确方法.

我想做什么?

MySQL中有2个表: - Country - Currency(我通过CountryCurrency将它们连接在一起 - >由于多对多关系)

请参阅此示例以获取一个工作示例:http://sqlfiddle.com/#!2/317d3/8/0

我想使用连接将两个表链接在一起,但我希望每个国家只显示一行(某些国家/地区有多种货币,因此这是第一个问题).

我找到了group_concat函数:

SELECT country.Name, country.ISOCode_2, group_concat(currency.name) AS currency
FROM country
INNER JOIN countryCurrency ON country.country_id = countryCurrency.country_id
INNER JOIN currency ON currency.currency_id = countryCurrency.currency_id
GROUP BY country.name
Run Code Online (Sandbox Code Playgroud)

这有以下结果:

NAME            ISOCODE_2   CURRENCY

Afghanistan AF          Afghani
Åland Islands   AX          Euro
Albania         AL          Lek
Algeria         DZ          Algerian Dinar
American Samoa  AS          US Dollar,Kwanza,East Caribbean Dollar
Run Code Online (Sandbox Code Playgroud)

但我现在想要的是将货币分成不同的列(货币1,货币2,......).我已经尝试过像MAKE_SET()这样的函数,但这不起作用.

mysql sql group-concat

6
推荐指数
1
解决办法
5755
查看次数

PHP带有双引号的json_encode数据

我正在使用这个简单的代码将数据库查询结果转换为JSON格式:

$result = $mysqli->query("
    SELECT  
        date as a 
        , sum(sales) as b
        , product as c
    FROM  
        default_dataset
    GROUP BY
        date
        , product
    ORDER BY
        date        
");

$data = $result->fetch_all(MYSQLI_ASSOC);

echo stripslashes(json_encode($data));
Run Code Online (Sandbox Code Playgroud)

问题是如果此查询返回的数据中存在双引号(例如,在产品列中).json_encode函数不会以良好的JSON格式对数据进行编码.

有人可以帮我如何转义查询返回的双引号?谢谢.

php json

5
推荐指数
3
解决办法
2万
查看次数

标签 统计

group-concat ×1

json ×1

mysql ×1

php ×1

sql ×1