PHP / Mysql:搜索字符串的序列化数据

时间:2015-09-25 21:01:07

标签: php mysql sql search serialization

我已经开始研究其他人创建的项目,这就是他所做的: 在mySql表中,他有一个名为“allData”的TEXT字段,在该字段中,他已经序列化了这样的记录

a:13:{s:12:"currencyCode";s:3:"SEK";s:11:"senderEmail";s:18:”xxxxxgu7@gmail.com";
s:4:"HASH";s:32:"ebdeb85d094cefd102b630fa9e69d9ca";}

(还有更多的数据,但我减少了大约95%,所以不会弄乱这个页面)

知道我如何搜索senderEmail或HASH的上述数据吗?

2 个答案:

答案 0 :(得分:3)

SELECT * FROM table WHERE allData LIKE '%"xxxxxgu7@gmail.com"%' AND allData LIKE '%"ebdeb85d094cefd102b630fa9e69d9ca"%' LIMIT 1;;

此示例应允许您在表中搜索特定的HASH和senderEmail,并在序列化数据中存在两个字段的匹配时返回该条目。这对于放入视图非常有用,因此可以快速轻松地检索它,您当然可以看到您希望在查询中更改电子邮件和散列的位置。在这个例子中,它将返回确切的条目。

更多信息:

MySQL Like Function

Search inside serialize data with MYSQL

答案 1 :(得分:0)

您可以正常检索数据。然后,使用unserialize将其转换为可以搜索的数组。