我正在使用mysql 6.x和json函数,并且有下面的查询,我正在尝试在何处使用或必须限制记录集-有一个名为 properties
这是json列,我需要对这个json数据执行多个条件的搜索
SELECT JSON_EXTRACT(properties,'$.identifier') AS identifier,
JSON_EXTRACT(properties,'$.workflow_type') AS workflow_type
FROM workflow_pages HAVING workflow_type;
这将返回以下数据:-
+------------+---------------+
| identifier | workflow_type |
+------------+---------------+
| 9 | "dictionary" |
| 13 | "dictionary" |
| 11 | "dictionary" |
| 13 | "rule" |
| 134 | "rule" |
+------------+---------------+
如何执行上述相同的查询以仅返回具有以下条件的行 identifier IN 13, 134
以及 workflow_type = 'rule'
我如何修改我的查询来做到这一点,因为mysql似乎不允许多个having条件
1条答案
按热度按时间6bc51xsx1#
你当然可以有多个条件
HAVING
从句(与多重从句相对)HAVING
条款):但我不建议用这种方式来表达这个问题;实际上,您依赖的是mysql对sql标准的扩展,该扩展允许在
HAVING
条款(且无GROUP BY
),这使得查询在某些方面相当不清楚。我发现用一个普通的WHERE
子句并重复以下表达式:或者,如果你有很多条件,不想做所有的类型,你可以使用子查询(我希望mysql做 predicate 下推,并在引擎盖下为你优化它):