【问题标题】:Wordpress Meta Value (Serialized) FilterWordpress 元值(序列化)过滤器
【发布时间】:2018-08-27 08:01:28
【问题描述】:

我有一个元键 _student_registration_data 存储在 wordpress 数据库中,元值作为序列化数组,如下所示:

a:9:{s:4:"name";s:20:"John Doe";s:11:"father_name";s:10:"Arnold";s:4:"cnic";s:13:"5540545612812";s:12:"home_address";s:9:"Scheme-33";s:16:"telephone_number";s:12:"923332654324";s:15:"registration_id";s:6:"08CS68";s:10:"program_id";s:1:"1";s:9:"cohort_id";s:1:"6";s:10:"section_id";s:1:"7";}

现在我想要一个 mysql 查询或一些内置的 wordpress 函数,借助它我可以过滤 registration_id 等于 08CS68 的 usermeta 行。

谢谢。

【问题讨论】:

    标签: mysql wordpress serialization meta


    【解决方案1】:

    您可以使用SUBSTRING_INDEX从字符串中提取registration_id

    SELECT *
    FROM yourtable
    WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(_student_registration_data,
                        'registration_id', -1), ';', 2), ':', -1) = '"08CS68"'
    

    【讨论】:

    • 嗨,阿里,这不是您要找的吗?如果没有,您能否提供更多信息来帮助回答您的问题?
    • 谢谢尼克,这确实很有帮助。我将您的答案与 mysql 查询的另一部分一起使用来实现我所需要的。
    【解决方案2】:

    尼克的回答是关键,但它并没有解决我的问题。实际效果如下:

    SELECT * FROM (SELECT * FROM `cn_usermeta` WHERE meta_key = '_student_registration_data') as META WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(META.meta_value, 'registration_id', -1), ';', 2), ':', -1) = '"08CS68"'
    

    特别感谢尼克 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 2023-02-19
      • 2023-03-23
      • 2021-06-21
      相关资源
      最近更新 更多