按元值排序序列化数组

时间:2013-02-17 作者:KT.

嗨,我正在尝试使用wp查询拉帖子。只有一个问题——我正在尝试按照某个meta\\u值按字母顺序对帖子进行排序。问题是这个meta\\u值是一个序列化数组。有没有一种简单的方法可以做到这一点而不必取消序列化?谢谢

a:1:{i:0;a:1:{s:7:"people";s:16:"Tanya Garca";}}
顺便说一句,我无法更改meta\\u值的保存方式,因为我正在使用这个插件,它会自动将其序列化保存。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

有没有一种简单的方法可以做到这一点而不必取消序列化?

不是以任何可靠的方式。你当然可以ORDER BY 该值但排序将使用整个序列化字符串,这将为您提供技术上准确的结果,但不是您想要的结果。您无法提取字符串的一部分以便在查询本身中进行排序。即使您编写了原始SQL,也可以访问数据库函数,如SUBSTRING, 我想不出一个可靠的方法来做这件事。您需要一个MySQL函数来取消对值的序列化--您必须自己编写它。

基本上,如果您需要在meta_value 无法将其序列化存储。很抱歉

如果无法更改值的存储方式,则需要拉入帖子,循环对其进行排序,然后再次循环显示排序结果。

结束

相关推荐