Wie kann ich zwei JSON-Werte in MariaDB vergleichen? Zwei Werte wie '{"b": 1, "a": 2}' und '{"a": 2, "b": 1}' sollten gleich sein. Enthält MariaDB Funktionen zum Umordnen von Elementen eines JSON-Wertes?Vergleichen Sie JSON-Werte in MariaDB
0
A
Antwort
0
Wenn Sie erwarten, diese (ungewöhnliche) Art von Vergleich zu benötigen, bauen Sie den JSON auf eine kanonische Weise auf, bevor Sie ihn speichern. Der einfachste Weg für ein einfaches JSON wie Ihres ist es, die Schlüssel zu alphabetisieren. Wie das geht, hängt von der "encode" -Bibliothek ab, die Sie für JSON verwenden.
1
Verwenden Sie einfach JSON_EXTRACT, JSON_EXTRACT kümmert sich nicht um die Position einer Ziffer in einer JSON-Zeichenfolge.
Abfrage
SELECT
JSON_EXTRACT(@json_string_1, '$.a') AS a1
, JSON_EXTRACT(@json_string_2, '$.a') AS a2
, JSON_EXTRACT(@json_string_1, '$.b') AS b1
, JSON_EXTRACT(@json_string_2, '$.b') AS b2
FROM (
SELECT
@json_string_1 := '{"b":1,"a":2}'
, @json_string_2 := '{"a":2,"b":1}'
)
AS
json_strings
Ergebnis
a1 a2 b1 b2
------ ------ ------ --------
2 2 1 1
nun dieses Ergebnis als gelieferte Tabelle verwenden, so können wir überprüfen, ob a1 bis a2 und b1 gleich ist, gleich b2.
Abfrage
SELECT
1 AS json_equal
FROM (
SELECT
JSON_EXTRACT(@json_string_1, '$.a') AS a1
, JSON_EXTRACT(@json_string_2, '$.a') AS a2
, JSON_EXTRACT(@json_string_1, '$.b') AS b1
, JSON_EXTRACT(@json_string_2, '$.b') AS b2
FROM (
SELECT
@json_string_1 := '{"b":1,"a":2}'
, @json_string_2 := '{"a":2,"b":1}'
)
AS
json_strings
)
AS json_data
WHERE
json_data.a1 = json_data.a2
AND
json_data.b1 = json_data.b2
Ergebnis
json_equal
------------
1
Verwandte Themen
- 1. MariaDB: So aktivieren Sie Masseneinfügevorgänge
- 2. Dateigruppe in MariaDB
- 3. Mariadb: Geographie
- 4. Statusabfragefehler in Mariadb anzeigen
- 5. Intersect Abfrage in MariaDB
- 6. json Weg in MariaDB
- 7. MariaDB - SELECT
- 8. MariaDB Triggerschleife
- 9. importieren MySQL-Datenbank in Mariadb
- 10. Wählen Sie max() jeden Wert MariaDB
- 11. Verwenden Sie Transaktionen mit Mariadb und node.js
- 12. Verbinden Sie ASP.NET mit Amazon RDS MariaDB
- 13. Rollback unter Bedingung in MariaDB
- 14. Installieren Sie Magento 2.1 mit MariaDB
- 15. Vergleichen Sie Listen in Excel
- 16. Vergleichen Sie Zahlen in C
- 17. Vergleichen Sie Zeit in Schienen
- 18. Vergleichen Sie Arrays in Swift
- 19. Wie MariaDB in Docker verwenden?
- 20. MariaDB installieren in Ubuntu 16.04
- 21. Verfügbarkeit der Statistiken in MariaDB
- 22. Hinzufügen Fremdschlüssel in MariaDB-Server
- 23. Unterstützt MARIADB TableSpaces?
- 24. kann nicht Datenbank MariaDB
- 25. MariaDB dynamische Spalten & JSON?
- 26. MARIADB - Python Connection Ausgabe
- 27. Verwenden Sie MariaDB anstelle von MySQL in meinem Rails-Projekt
- 28. JSON_SET in Mariadb, fügen Sie keine Daten ein
- 29. Deaktivieren Sie persistente Verbindungen in Mariadb für jdbc: mysql
- 30. So vermeiden Sie doppelte SELECT-Sätze in SQL (MariaDB)