我们可以比较MySQL中多维Json编码值的值吗

问题描述

我正在使用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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...