[
{
"id":76335210,
"name": "张三"
},
{
"id":76335211,
"name": "李四"
}
]
mysql 中存的字段是 json 类型。有什么方法可以查询出某个字段的拼接结果? 现在想到得到:张三 /李四。类似这样的结果。 目前通过 JSON_EXTRACT 函数得到的结果是一个 array:["张三", "李四"]
[
{
"id":76335210,
"name": "张三"
},
{
"id":76335211,
"name": "李四"
}
]
mysql 中存的字段是 json 类型。有什么方法可以查询出某个字段的拼接结果? 现在想到得到:张三 /李四。类似这样的结果。 目前通过 JSON_EXTRACT 函数得到的结果是一个 array:["张三", "李四"]
|
JonathanLee07734Dec 7, 2021
1
```mysql
select trim(trailing ']' from trim(leading '[' from replace(replace(json_extract(@json, '$[*].name'), '"', ''), ', ', '/'))); ``` 这逻辑为啥不放在程序里= = |
|
onhaoDec 7, 2021
2
|
|
moenDec 7, 2021
3
上面那个字符串操作简直太吓人了,正常人的写法应该是
SELECT GROUP_CONCAT(name SEPARATOR '/') FROM table, JSON_TABLE(json_column, '$[*]' COLUMNS (name VARCHAR(255) PATH '$.name')) AS names |
|
jyaoDec 8, 2021
4
这种操作一般由代码去实现吧,使用 sql 来实现太浪费资源了,而且对数据库极其不友好,实际开发过程中及其不推荐
|
|
ourFEerDec 8, 2021
5
看头像进来的,你头像啥情况
|
|
6
@JonathanLee07734 好思路
@onhao 感谢 @moen 感谢 待会儿试一下 @jyao 因为只是一个字段,数据库之前设计的不合理,拿出来处理不想多写一堆代码 @ourFEer py 哈哈哈 |