MySQL:json提取删除引号

标签 mysql json

我使用的是 MySQL 5.7.12,这是我的查询。

select objectid, (JSON_EXTRACT(fullobject, '$.mail')) as mail from openidm.managedobjects where objecttypes_id=5 and (JSON_EXTRACT(fullobject, '$.mail'))='fake@email.com';

这是输出

--------------------------------------------------
| objectid          | mail                       |
--------------------------------------------------
| 001f73d9-f3d      | "fake@email.com"           |
--------------------------------------------------

我想从输出中删除引号,但由于我使用的是 5.7.12,因此无法使用 JSON_UNQUOTE() 来完成此操作。

我尝试使用REPLACE():

select objectid, REPLACE((JSON_EXTRACT(fullobject, '$.mail')), '\"', '') as mail from openidm.managedobjects where objecttypes_id=5 and (JSON_EXTRACT(fullobject, '$.mail'))='fake@email.com';

但输出完全不相关:

----------------------------------------------------------------------------
| objectid          | mail                                                 |
----------------------------------------------------------------------------
| 001f73d9-f3d      | 6C75632E6170617369383840676D61696C2E636F6D           |
----------------------------------------------------------------------------

编辑

这是我的show create table openidm.managementobjects;

CREATE TABLE `managedobjects` (                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
`objecttypes_id` bigint(20) unsigned NOT NULL,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
`objectid` varchar(255) COLLATE utf8_bin NOT NULL,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
`rev` varchar(38) COLLATE utf8_bin NOT NULL,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
`fullobject` mediumtext COLLATE utf8_bin,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
    PRIMARY KEY (`id`),                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
    UNIQUE KEY `idx-managedobjects_object` (`objecttypes_id`,`objectid`),                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
    KEY `fk_managedobjects_objectypes` (`objecttypes_id`),                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
    CONSTRAINT `fk_managedobjects_objectypes` FOREIGN KEY (`objecttypes_id`) REFERENCES `objecttypes` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
) ENGINE=InnoDB AUTO_INCREMENT=445311 DEFAULT CHARSET=utf8 COLLATE=utf8_bin

这是fullobject json:

{"telephoneNumber":"077777777","mail":"fake@email.com","msisdnVerified":"true","countryCode":"+44","opCoProfileId":"MSISDN","opCo":"3UK","userName":"077777777","partyID":"777777777","accountStatus":"active","creationDate":"Wed Jan 24 2018 11:33:02 GMT+0100 (CET)","_id":"001f73d9-f3d","_rev":"3","global_id":"001f73d9-f3d","CRSMID":"50000048","migrated":"false","mailVerified":"true","mailVerifiedDate":"Wed Jan 24 2018 11:33:03 GMT+0100 (CET)","dateOfBirth":"1988-02-02","password":{"$crypto":{"type":"x-simple-encryption","value":{"cipher":"AES/CBC/PKCS5Padding","salt":"1P3TMv71pASuLkyVLFNnEA==","data":"iyj/h0fMU6aiTTBLL/Bb2w==","iv":"gQ6a5cAJYrtek5vcX8+mfw==","key":"openidm-sym-default","mac":"ntv0yTBDzCb0n8kvW4UklQ=="}}}}

最佳答案

您可以使用trim()功能如下:

select objectid, 
       TRIM(BOTH '"' FROM 
                 (JSON_EXTRACT(fullobject, '$'))
       ) as mail 
from openidm.managedobjects 
where objecttypes_id=5 
  and (JSON_EXTRACT(fullobject, '$.mail'))='fake@email.com';

编辑使用$而不是$.mail,检查这个Fiddle

关于MySQL:json提取删除引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48421649/

相关文章:

json - 将 fnRender 与 ajax 源数据表结合使用

mysql - 将多个 MySQL 子查询合并为一个

json - Yii2 RESTful Web服务: JSON Request Format

c# - NewtonSoft Json DeserializeObject 空 Guid 字段

php - 使用 Laravel 5.3 将值输入数据库

javascript - 从 json 加载后无法在 Canvas 上渲染对象

jquery - 自动完成类别

javascript - MySQL IN 仅返回数组中第一项的结果

java - 如何将 JDBC mysql 驱动程序添加到 Eclipse 项目中?

javascript - 当\js是未知命令时,如何在mysql-shell中切换到JS模式?