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

如果 valuejson_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 |
+----------------------------+------------------------------+

纯值

如果 valuejson_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 值。