php - 在存储在数据库中的序列化值中搜索

标签 php mysql arrays codeigniter serialization

我有一个房地产属性表,其中房地产属性的特征存储在序列化数组中。例如,房子可以有 wifi、游泳池、花园等其他杂项功能。这些特征形成一个列表,带有值的数组,并被序列化并存储在名为特征的表列中。当我必须显示这些功能时,我获取序列化数组,反序列化并显示它。现在,使用这张表,我如何搜索有 Wifi 和游泳池的房子?其次,在搜索超出范围之前,这种结构一直很好,但如果有充分的理由,除了搜索之外,我愿意修改它。

更新
feature wifi 可以拼写为“Wifi”或“WiFi available”或“equipped with wifi”或任何其他形式。所以 wifi 是一个关键字,而功能实际上是由业主输入的,因此相似的功能可能会有所不同。因此,我们的想法是将特征保存在序列化数组中

最佳答案

PHP 序列化格式(或 JSON)不是 SQL 中的原生数据类型。但例如 XML 会。但这通常同样是矫枉过正。

单独表方法的替代方法是现有功能的 CSV 列表(感谢 FIND_IN_SET,SQL 原生)。

否则,当您想要保留序列化数据 blob 时,您可以使用一些猜测来使用 WHERE options REGEXP 's:4:"Pool";b:1' 预过滤搜索查询。 (您需要知道您正在寻找的每个属性的确切序列化方案。)

对于与数据库无关的数据集,我什至认为是合适的。但由于您主要使用数据库来搜索数据 block ,您应该重新考虑。

关于php - 在存储在数据库中的序列化值中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7226288/

相关文章:

PHP如何使用for循环的变量与mysql_fetch_array来指示获取数据的行?

php - 在 Laravel 中添加字符串类型的外键时出错

JavaScript 将元素键赋予数组

javascript - 如何将输入数字之前(包括输入数字)的所有数字相加?

javascript - 用于处理更改的 React Props 而不是函数

php - 在通过 HTML 上传的 CSV 上运行 Python 脚本

php - 使用 PHP 转换 delphi TColor

php - 使用 PHP Captcha 插件的 HTML 表单,我遇到了一些问题

php - 如何使用jquery(AJAX)从mysql表中逐行获取数据,用php编写查询?

mysql - PSQL : How to get the record count of each value in a column group by another column