在rt索引中,我有字段-具有fields
属性的rt_attr_json
。
在此字段中,我具有这样的结构(相同块的集合):
{
block_name: "a",
block_type: 1,
elements: {
{
...
}
}
}
我如何从狮身人面像中获取在此块中具有block_type = 1
和not empty elements
的所有记录?
如果知道块键,我知道如何实现:
where fields[0].block_type=1 and fields[0].elements is null;
答案 0 :(得分:0)
我不确定我是否完全理解这个问题,但是以下内容在Sphinx 3.1.1中效果很好:
mysql> select * from jt;
+------+-------+-----------------------------+
| id | title | j |
+------+-------+-----------------------------+
| 1 | | {"type":1} |
| 2 | | {"type":1,"elements":[]} |
| 3 | | {"type":1,"elements":[123]} |
| 4 | | {"type":2} |
| 5 | | {"type":2,"elements":[123]} |
+------+-------+-----------------------------+
5 rows in set (0.00 sec)
mysql> select * from jt where j.type=1 and j.elements is not null;
+------+-------+-----------------------------+
| id | title | j |
+------+-------+-----------------------------+
| 2 | | {"type":1,"elements":[]} |
| 3 | | {"type":1,"elements":[123]} |
+------+-------+-----------------------------+
2 rows in set (0.00 sec)
请注意,以前的任何版本的行为都可能有所不同,因为NULL处理已固定到在最新的3.1.1版本中半重写的程度。