php - 如何解析 mySql 表的单个字段中的多个值?

标签 php html mysql wordpress

我正在使用 mySql 中的房地产数据库。这是与 wordpress 站点一起使用的。 列出的每个属性在连接表中都有相关代理。一处特性可能有不止一位代理人。 但是,单个字段中列出了多个代理。 (因此,加入是 1-1)。 这是一个例子

a:2:{i:0;s:4:"1995";i:1;s:3:"260";}

所以看起来这是某种数组实现。我对此没有太多经验,因为无论如何这都是将数据存储在关系数据库中的一种糟糕方法。 在此示例中,有 2 个代理。 我知道:
- 第一个“2”可能是指代理人的数量。
- "1995"和 "260"是代理记录的record-ids。
我将如何编写 SQL 语句以从 php 中提取这两个记录 ID(并在主记录中查找相关数据)?
如果这是一个麻烦的解决方案,我想创建一个新的 SQL View 以使访问更容易。这可能吗?
如果有的话,我找不到任何解释这个字段的 php 函数。
表重新设计不是一种选择。

编辑:
当我阅读所指出的类似问题的答案时,我得出的结论是这很可能是不可能的。坦率地说是荒谬的。
解决方案需要重复使用 SUBSTRING_INDEX。多少次,每次都可能不同。即使指定了值的数量,在 MySQL 中也可能无法完成。我将不得不应对由此产生的限制。

最佳答案

你说的数据格式是php's serialization format .在 JSON 接管世界之前,Rasmus Lerdorf 和 php 的创建者想出了他们自己的实现方式。

WordPress 使用了很多这样的东西。

php's unserialize() function将其从该字符串表示形式转换为适当的 php 对象。

如果必须,您可以使用 MySQL string functions喜欢LOCATE()SUBSTRING()从那些序列化的字符串中提取某些值。但这将是一个巨大的痛苦,而且对于序列化的对象类型来说非常具体。

关于php - 如何解析 mySql 表的单个字段中的多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57056268/

相关文章:

oop中的php变量范围

php - 检查当前域

jquery - 我的 jQuery 代码不起作用

html - 如何从 sprite 图像创建链接?

html - 子标签是绝对的,它的 margin-left 从父标签的 padding 开始。为什么它的 margin-right 从 body 开始?

mysql - 备份mysql用户有权访问的所有MySQL数据库

mysql - 单个 SUMIF 函数中的多个条件

php - onclick javascript 函数在 Firefox 中不起作用

php - WordPress 中每个类别两张图片

mysql - 通过编程从C#程序附带的数据库中备份数据库