我正在使用WordPress平台,并使用WP_Query来调用我的数据,尽管如果可以的话,可以使用自定义MYSQL脚本。
我只想添加一个where条件,它可以过滤JSON值,如下所述:
所以在postmeta表中,我有以下列
meta_key: _stock_reserve_outlet_extended
meta_value: a:2:{s:8:"outlet_2";a:2:{s:5:"stock";s:2:"20";s:5:"rider";s:2:"-1";}s:8:"outlet_1";a:2:{s:5:"stock";i:-4;s:5:"rider";i:0;}}
它实际上是由get_post_meta((函数提取的数组:
Array (
[outlet_2] => Array (
[stock] => 45
[rider] => 0
)
[outlet_1] => Array (
[stock] => -4
[rider] => 0)
)
)
我想在从脚本调用行的过程中,通过比较以下内容来筛选行:股票>出口_2中的0
我试图通过json_search来搜索过滤器json值过滤,但这并不能按关键字进行比较。
为了尝试WP_Query,我使用了以下方法,但没有显示效果
$args['meta_query'][] = array(
'key' => '_stock_outlet_extended',
'value' => array(
'key' => 'stock',
'value' => '18'
),
'compare' => '>',
);
然后我尝试了以下脚本,但效果不佳:
SELECT meta_value
FROM `frbl1ozme_postmeta`
WHERE `post_id` = 3699 AND `meta_key` = '_stock_outlet_extended' AND meta_value ->'$.stock' > 1;
有人知道如何处理这类标准吗?
我的观察者是什么如果您使用wordpress的update_post_meta((函数保存任何数组,那么它将对其进行序列化,并且您无法通过脚本过滤行。
因此,在了解了这一事实后,我对结构进行了更改,并根据股票的价值条件保存状态,因此我可以通过MYSQL轻松地过滤行。
因此,在一行答案中,到目前为止,还无法通过mysql查询实现过滤序列化行。
感谢大家的帮助,特别是@RiggsFilly