有时会在数据表中保存一个serizlie()过的一个php的array变量字符串,当需要使用SQL语言取出某个key的值时可以用到。比如: a:3:{s:1:a;s:12:asdfasdfasdf;s:1:b;i:123123123;s:1:c;s:8:ASDFASDF;} 需要从中取出key是b的内容。 MySQL delimiter $$create functi

有时会在数据表中保存一个serizlie()过的一个php的array变量字符串,当需要使用SQL语言取出某个key的值时可以用到。比如:

a:3:{s:1:"a";s:12:"asdfasdfasdf";s:1:"b";i:123123123;s:1:"c";s:8:"ASDFASDF";}

需要从中取出key是b的内容。

MySQL

delimiter $$

create function get_from_serialized_json

( in_string varchar(255),

in_key varchar(255) )

returns varchar(255)

BEGIN

return trim( '"' from

substring_index(

substring_index(

substring(trim("}" FROM in_string ), locate(concat("\"",in_key,"\""), in_string )+1

) , ";",2

), ":",-1 )) ;

END$$

mysql> show create function get_from_serialized_json\G

*************************** 1. row ***************************

Function: get_from_serialized_json

sql_mode:

Create Function: CREATE DEFINER=`root`@`localhost` FUNCTION `get_from_serialized_json`( in_string varchar(255),

in_key varchar(255) ) RETURNS varchar(255) CHARSET latin1

BEGIN

return trim( '"' from

substring_index(

substring_index(

substring(trim("}" FROM in_string ), locate(concat("\"",in_key,"\""), in_string )+1

) , ";",2

), ":",-1 )) ;

END

character_set_client: latin1

collation_connection: latin1_swedish_ci

Database Collation: latin1_swedish_ci

1 row in set (0.00 sec)

'asdfasdfasdf', 'b'=> 123123123, 'c'=> 'ASDFASDF');

echo serialize($a);

mysql> set @a ='a:3:{s:1:"a";s:12:"asdfasdfasdf";s:1:"b";i:123123123;s:1:"c";s:8:"ASDFASDF";}';

Query OK, 0 rows affected (0.00 sec)

mysql>

mysql> select get_from_serialized_json(@a,"a");

+----------------------------------+

| get_from_serialized_json(@a,"a") |

+----------------------------------+

| asdfasdfasdf |

+----------------------------------+

1 row in set (0.00 sec)

mysql> select get_from_serialized_json(@a,"b");

+----------------------------------+

| get_from_serialized_json(@a,"b") |

+----------------------------------+

| 123123123 |

+----------------------------------+

1 row in set (0.00 sec)

mysql> select get_from_serialized_json(@a,"c");

+----------------------------------+

| get_from_serialized_json(@a,"c") |

+----------------------------------+

| ASDFASDF |

+----------------------------------+

1 row in set (0.00 sec)

mysql>

mysql> drop function get_from_serialized_json ;

Query OK, 0 rows affected (0.00 sec)

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php 提取字段为key,从一个serialize过的array的字符串中取出中取对应KEY的value相关推荐

  1. uniapp**字符串转Json并提取字段值

    uniapp字符串转Json并提取字段值 JSON有三种格式,每一种写法都和JS中的数据类型很像,可以很轻松的和JS中的数据类型互相转换 一.简单值的形式:JSON的简单值的格式对应着JS中的基础数据 ...

  2. 输入一个长度不超过100的字符串,删除串中的重复字符。

    #include <stdio.h> #include <string.h> #define N 200 int main() { char a[N]; //存储字符串. in ...

  3. MyBatis查询两个字段,返回Map,一个字段作为key,一个字段作为value的实现

    1. 问题描述 在使用MyBatis,我们经常会遇到这种情况:SELECT两个字段,需要返回一个Map,其中第一个字段作为key,第二个字段作为value.MyBatis的MapKey虽然很实用,但并 ...

  4. python在json文件中查找指定数据_Python中json的取值 如何使用python提取json中指定字段的数据...

    python中为什么用json有什么作用 如何用python读取json里面的值啊我爱你,所以我给了你伤害我的权力,只要我能忍受,我会一直陪伴着你,但你不能伤害我太多. 数据如下,我想要读取name. ...

  5. splunk 提取字段_Splunk数据处理

    0.提要 本篇主要从技术层面针对Splunk Enterprise中关于数据处理的概念.过程与部件进行了概要性总结. 1.数据管理基本概念 索引(index):Splunk用于存储事件的数据仓库: 索 ...

  6. Lesson 6.1 身份证识别: 提取字段

    Lesson 6.1 身份证识别: 提取字段 小编最近试试识别身份证上面的文字. 第一步还是图像分割,第一步还是提取文本行,然后提取字段. 看上去,第一个感觉就是所有文字都是黑色的.可以简单过滤一下图 ...

  7. binary - 从(向)二进制串插入和提取字段 / BINARY FORMAT BINARY SCAN

    binary - 从(向)二进制串插入和提取字段??? SYNOPSISbinary format formatString ?arg arg ...?binary scan string forma ...

  8. sed查找文件包含字段_sed(查找替换) 与awk(提取字段)

    通常: sed 处理列  awk处理行 比较方便 Sed是一个基本的查找替换程序     sed -i   "s/^@//g"     文件  #原地操作原文件,进行替换 cat ...

  9. ES _all、_source的使用——_all字段连接所有字段的值构成一个用空格(space)分隔的大string而被analyzed和index,document主体保存在_source中...

    1._all 1.1_all field _all字段是一个很少用到的字段,它连接所有字段的值构成一个用空格(space)分隔的大string,该string被analyzed和index,但是不被s ...

最新文章

  1. 008_SpringBoot视图层技术jsp
  2. 架构师成长系列 | 云原生时代的 DevOps 之道
  3. 最小路径和Python解法
  4. MongoDB 的高级查询 aggregate 聚合管道
  5. java请编写公共类继承抽象类_(Java相关)怎么理解抽象类,继承和接口?
  6. 判断Windows操作系统版本
  7. java bean jsp_jsp+java bean+servlet开发的mvc简易鞋城在线商城系统
  8. php检索条件丢失,php – 从SQL Server检索时丢失的某些图像的一部分
  9. 富士通Fujitsu DPK210 打印机驱动
  10. 昆腾的反思:对象存储解困大数据
  11. 解决win10安装Ubuntu18.04双系统后时间不对问题
  12. opencv 特征提取 -SIFT
  13. [经验教程]拼多多购物车在哪里怎么加入购物车合并一起付款?
  14. 用图形编程编写国际象棋游戏
  15. 数据库Date数据与字符串如何转换
  16. csgo服务器取消自动踢人,CSGO踢出玩家Kick相关控制台指令
  17. nginx 反向代理(完成图片回显示效果)
  18. Linux·centos 钉钉下载安装
  19. 春花秋月何时了,互联网广告系统知多少?
  20. 考研英语二小作文 通知模板 夏令营

热门文章

  1. python的类里的属性是否可以为列表_是否有Python方法可以访问类的所有非私有和非内置属性?...
  2. php 输出 jsonp
  3. 20145234黄斐《java程序设计》第十三周代码检查
  4. Installing Flex Data Services on JBoss
  5. vue-router向子组件传递参数
  6. 【笔记】2-SAT (tarjan)
  7. oracle约束的相关总结
  8. Extensible Firmware Interface
  9. [译] 关于 HTTP/3 的一些心得
  10. java 实现类似于python requests包的Session类,自动管理cookie。