MySQL MEMBER OF() 函数使用指南
MySQL MEMBER OF() 函数检查一个指定的值是否是一个 JSON 数组中的元素。
MEMBER OF() 语法
这里是 MySQL MEMBER OF() 的语法:
value MEMBER OF(json_array)
参数
-
value必需的。一个值。它可以是任意类型。
-
json_array必需的。一个 JSON 数组。
返回值
如果 json_array 中包含了 value,那么 MEMBER OF() 返回 1, 否则返回 0。
如果 value 和 json_array 都是纯值且相等,那么 MEMBER OF() 返回 1。
如果参数 json_array 不是有效的 JSON 文档,MySQL 将会给出一个错误。您可以使用 JSON_VALID() 验证 JSON 文档的有效性。
MEMBER OF() 示例
基本用法
SELECT
1 MEMBER OF('[1, 2, "a"]'),
'a' MEMBER OF('[1, 2, "a"]');
+----------------------------+------------------------------+
| 1 MEMBER OF('[1, 2, "a"]') | 'a' MEMBER OF('[1, 2, "a"]') |
+----------------------------+------------------------------+
| 1 | 1 |
+----------------------------+------------------------------+纯值
如果 value 和 json_array 都是纯值且相等,那么 MEMBER OF() 返回 1。
SELECT
1 MEMBER OF('1'),
'a' MEMBER OF('"a"'),
CAST('true' AS JSON) MEMBER OF('true');
+------------------+----------------------+----------------------------------------+
| 1 MEMBER OF('1') | 'a' MEMBER OF('"a"') | CAST('true' AS JSON) MEMBER OF('true') |
+------------------+----------------------+----------------------------------------+
| 1 | 1 | 1 |
+------------------+----------------------+----------------------------------------+这里使用了 CAST() 函数将 'true' 由字符串转为 JSON 值。