Esta página se tradujo del inglés con ayuda de IA. Si hay diferencias entre ambas, la versión en inglés es la referencia.
JSON_EQUAL
Compara dos cadenas JSON y devuelve true si son equivalentes, o false en caso contrario.
Consulte también:
[SELECT] [DESCRIBE] [JSON_EXTRACT] [JSON_ARRAY_LENGTH] [ Tipos de datos ]
La función json_equal es una función de extensión personalizada de StackQL. Admite la comparación de objetos y arrays JSON, y trata como equivalentes los objetos con claves en distinto orden, de acuerdo con la especificación de JSON. La función json_equal está disponible a partir de StackQL 0.5.707 y solo se admite con el backend SQL integrado en memoria predeterminado de StackQL.
Sintaxis
SELECT JSON_EQUAL(json1, json2);
Argumentos
json1
Una cadena JSON que representa un objeto o un array.
json2
Otra cadena JSON para comparar con la primera.
Ambos argumentos deben ser cadenas JSON válidas.
Valor(es) devuelto(s)
Un valor entero: 1 si las cadenas JSON son equivalentes, 0 si no lo son.
Ejemplos
Comparar objetos JSON
SELECT
public_access_block_configuration as current_state,
'{"BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true}' as desired_state,
JSON_EQUAL(public_access_block_configuration, '{"BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true}') as comp
FROM awscc.s3.buckets
WHERE region = 'ap-southeast-2'
AND Identifier = 'my-bucket';
/* returns...
|--------------------------------------------------------------------------------------------------------|--------------------------------|------|
| current_state | desired_state | comp |
|--------------------------------------------------------------------------------------------------------|--------------------------------|------|
| {"RestrictPublicBuckets":true,"BlockPublicPolicy":true,"BlockPublicAcls":true,"IgnorePublicAcls":true} | {"BlockPublicAcls": true, | 1 |
| | "BlockPublicPolicy": true, | |
| | "IgnorePublicAcls": true, | |
| | "RestrictPublicBuckets": true} | |
|--------------------------------------------------------------------------------------------------------|--------------------------------|------|
*/
Comparar arrays JSON
SELECT
json_equal('[1, 2, 3]', '[1, 2, 3]') as array_comp_1,
json_equal('[1, 2, 3]', '[3, 2, 1]') as array_comp_2
;
/* returns...
|--------------|--------------|
| array_comp_1 | array_comp_2 |
|--------------|--------------|
| 1 | 0 |
|--------------|--------------|
*/
Para obtener más información, consulte json_equal.