【发布时间】:2019-11-25 03:09:35
【问题描述】:
我正在使用 mySql 中的房地产数据库。这与 wordpress 网站一起使用。 列出的每个属性在连接表中都有相关代理。一处房产可能有超过 1 个代理人。 但是,多个代理列在一个字段中。 (所以,连接是 1-1)。 这是一个例子
a:2:{i:0;s:4:"1995";i:1;s:3:"260";}
所以看起来这是某种数组实现。我对此没有太多经验,因为无论如何这都是将数据存储在关系数据库中的一种不好的方式。
在此示例中,有 2 个代理。
我知道:
- 第一个“2”可能是指代理的数量。
- “1995”和“260”是代理记录的记录ID。
我将如何制作一条 SQL 语句来从 php 中提取这两个记录 ID(并在主记录中查找相关数据)?
如果这是一个繁琐的解决方案,我想创建一个新的 SQL 视图以使访问更容易。这可能吗?
如果有的话,我找不到任何解释这个字段的 php 函数。
表重新设计不是一种选择。
编辑:
当我阅读所指出的类似问题的答案时,我得出的结论是,这很可能是不可能的。坦率地说,这很荒谬。
该解决方案需要反复使用 SUBSTRING_INDEX。多少次,可能每次都不一样。即使指定了值的数量,也可能无法在 MySQL 中完成。我将不得不克服由此产生的限制。
【问题讨论】:
-
那是序列化的PHP数据。你不能用 MySQL 反序列化它。
-
您是否拥有/管理 Wordpress?如果是这样,您可以轻松地在子主题的自定义模板中创建自定义查询,以显示这些信息
-
@gael,是的,这正是我打算做的。问题是首先格式化自定义查询。根据上面提到的类似问题,它需要使用 SUBSTRING_INDEX 可变次数。不幸的是,这“超出了我的工资等级”。除非我能想出一些天才的解决方案,否则我可能不得不认输。