问题描述
我正在使用WordPress平台,并使用 WP_Query 调用我的数据,尽管可以使用自定义的 MYSQL脚本 如果可以的话。
我只想添加一个可以过滤JSON值的where条件,如下所述:
所以在 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)
)
)
我想通过比较以下内容来在从脚本调用行期间过滤行: 库存> 0于插座_2
我尝试通过 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查询实现过滤器对行进行序列化。
谢谢大家的帮助,特别是@RiggsFolly