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


PHP/Mysql: Searching serialized data for a string

我已经开始做一个别人创建的项目,这是他所做的:
在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%,所以它不会弄乱这个页面)

任何想法我可以如何搜索上述数据的sendemail或HASH?

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

这个示例应该允许您在表中搜索特定的HASH和sendemail,如果序列化数据中存在两个字段的匹配,则返回该条目。这将有助于将其放入视图中,以便能够快速轻松地检索它,并且您当然可以看到希望在查询中更改电子邮件和散列的位置。在这个例子中,它将返回那个准确的条目。

更多信息:

MySQL Like Function

可以正常检索数据。然后,使用反序列化将其转换为可以搜索的数组。