Der Standardtabellenname ist „base_data“ und der JSON-Spaltenname ist „json_value“ Der Wert von json_value ist
Dann sollte die Abfrage sein
oder
Beides ist in Ordnung, der spezifische Unterschied ist noch unbekannt Ergänzendes Wissen: Das Problem, dass das varchar-Feld von MySQL automatisch abgeschnitten wird, wenn die Länge den Grenzwert überschreitet ----- Beschreibung und Einstellungen des sql_mode-Modus von MySQL Sinnvolle Einstellung des MySQL sql_mode sql_mode ist eine Variable, die leicht übersehen wird. Der Standardwert ist null. Mit dieser Einstellung können einige unzulässige Vorgänge zugelassen werden, z. B. das Einfügen einiger unzulässiger Daten. In der Produktionsumgebung muss dieser Wert auf den strikten Modus eingestellt werden, daher muss auch die Datenbank der Entwicklungs- und Testumgebung entsprechend eingestellt werden, damit Probleme während der Entwicklungs- und Testphase erkannt werden können. Das SQL-Modell wird häufig zur Lösung der folgenden Arten von Problemen verwendet (1) Durch Einstellen des SQL-Modus können Sie die Datenüberprüfung mit unterschiedlichen Strengegraden durchführen und so die Datenbereitschaft effektiv sicherstellen. (2) Indem wir das SQL-Modell auf den Loose-Modus setzen, können wir sicherstellen, dass die meisten SQL-Anweisungen der Standard-SQL-Syntax entsprechen. Auf diese Weise müssen wir beim Migrieren von Anwendungen zwischen verschiedenen Datenbanken keine größeren Änderungen an den geschäftlichen SQL-Anweisungen vornehmen. (3) Bevor Sie Daten zwischen verschiedenen Datenbanken migrieren, können Sie den SQL-Modus einstellen, um die Migration von Daten von MySQL in die Zieldatenbank zu erleichtern. Übliche Werte für sql_mode sind wie folgt:
Bei GROUP BY-Aggregationsvorgängen gilt: Wenn die Spalten in SELECT nicht in GROUP BY erscheinen, ist dieses SQL ungültig, da die Spalten nicht in der GROUP BY-Klausel enthalten sind.
Dieser Wert wirkt sich auf Einfügungen in Auto-Increment-Spalten aus. Standardmäßig bedeutet das Einfügen von 0 oder NULL, dass der nächste Auto-Inkrement-Wert generiert wird. Diese Option ist nützlich, wenn der Benutzer einen Wert von 0 einfügen möchte und die Spalte automatisch inkrementiert wird.
Wenn in diesem Modus ein Wert nicht in eine Transaktionstabelle eingefügt werden kann, wird der aktuelle Vorgang unterbrochen und es werden keine Einschränkungen für Nicht-Transaktionstabellen auferlegt.
Im strikten Modus sind Tages- und Monatswerte von Null nicht zulässig.
Durch Festlegen dieses Werts lässt die MySQL-Datenbank das Einfügen von Nulldaten nicht zu. Das Einfügen von Nulldaten führt zu einem Fehler statt einer Warnung.
Wenn bei einem INSERT oder UPDATE Daten durch Null geteilt werden, wird ein Fehler und keine Warnung generiert. Wenn dieser Modus nicht angegeben ist, gibt MySQL NULL zurück, wenn der Wert durch Null geteilt wird.
Verhindern Sie, dass GRANT Benutzer mit leeren Passwörtern erstellt
Wenn die erforderliche Speicher-Engine deaktiviert oder nicht kompiliert ist, wird ein Fehler ausgegeben. Wenn dieser Wert nicht festgelegt ist, wird stattdessen die Standardspeicher-Engine verwendet und eine Ausnahme ausgelöst.
Behandeln Sie „||“ als einen String-Verkettungsoperator und nicht als einen ODER-Operator. Dies entspricht der Oracle-Datenbank und ähnelt der String-Verkettungsfunktion Concat.
Wenn ANSI_QUOTES aktiviert ist, können Sie keine Anführungszeichen zum Zitieren von Zeichenfolgen verwenden, da diese als Bezeichner interpretiert werden. Die sql_mode-Einstellung von ORACLE entspricht:
Wenn Sie MySQL verwenden, können Sie den SQL-Modus von MySQL wie folgt festlegen, damit jeder weiterhin an die Verwendung von Oracle gewöhnt ist: Fügen Sie die folgende Konfiguration in my.cnf hinzu [mysqld]
Beachten: Die Standardparameter sql_mode von MySQL 5.6 und MySQL 5.7 sind unterschiedlich. Der Modus von 5.6 ist NO_ENGINE_SUBSTITUTION, was tatsächlich einen Nullwert darstellt, was keiner Moduseinstellung entspricht und als lockerer Modus verstanden werden kann. Der Modus von 5.7 ist STRICT_TRANS_TABLES, also der strikte Modus. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers ::::::::::: Sie werden feststellen, dass MySQL im Laufe der Zeit neben der Datenüberprüfung noch viele weitere Dinge kann, die Sie in Ihrem Programm tun. Probleme, die nach dem Wechsel in den strikten Modus auftreten können: Wenn der Einstellungsmodus NO_ZERO_DATE enthält, lässt die MySQL-Datenbank das Einfügen von Nulldaten nicht zu, und das Einfügen von Nulldaten führt zu einem Fehler statt einer Warnung. Beispielsweise wird einer TIMESTAMP-Spalte in einer Tabelle (sofern sie nicht als NULL deklariert ist oder eine DEFAULT-Klausel enthält) automatisch DEFAULT '0000-00-00 00:00:00' (Null-Zeitstempel) zugewiesen, oder die Tagesspalte in der Tabelle dieses Tests ermöglicht standardmäßig die Einfügung eines Nulldatums '0000-00-00' COMMENT 'Datum'. Diese erfüllen im SQL-Modus offensichtlich nicht NO_ZERO_DATE und melden einen Fehler. Einstellen und Ändern des Modus (am Beispiel der Lösung des obigen Problems): Methode 1: Führen Sie zuerst select @@sql_mode aus, kopieren Sie den abgefragten Wert und löschen Sie NO_ZERO_IN_DATE und NO_ZERO_DATE. Führen Sie dann set sql_mode = 'modified value' oder set session sql_mode = 'modified value'; aus, zum Beispiel: set session sql_mode = 'STRICT_TRANS_TABLES'; um in den strikten Modus zu wechseln. Diese Methode ist nur in der aktuellen Sitzung wirksam und wird nicht wirksam, wenn die aktuelle Sitzung geschlossen wird. Methode 2: Führen Sie zuerst „select @@global.sql_mode“ aus, kopieren Sie den abgefragten Wert und löschen Sie NO_ZERO_IN_DATE und NO_ZERO_DATE. Führen Sie dann „set global sql_mode = 'modified value'“ aus. Diese Methode ist im aktuellen Dienst wirksam und wird nach einem Neustart des MySQL-Dienstes ungültig. Methode 3: Fügen Sie im MySQL-Installationsverzeichnis oder in der Datei my.cnf (my.ini-Datei in Windows) hinzu
Fügen Sie my.cnf wie folgt hinzu: [mysqld]
Starten Sie dann MySQL neu. Diese Methode ist dauerhaft wirksam. Natürlich ist ein Neustart des MySQL-Dienstes in der Produktionsumgebung verboten, daher werden Methode 2 und Methode 3 verwendet, um Online-Probleme zu lösen. Selbst wenn der MySQL-Dienst dann eines Tages tatsächlich neu gestartet wird, ist er dauerhaft wirksam. Die obige Datenabfrageoperation im MySQL-JSON-Format ist der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, dass er Ihnen als Referenz dienen kann. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Das könnte Sie auch interessieren:
|
<<: Lösung zur automatischen Beendigung von Docker Run-Containern
>>: Eine kurze Diskussion über den Unterschied zwischen src und href in HTML
Erster Blick auf die Wirkung: Wenn die Maus über ...
Um zu verstehen, was das bedeutet, müssen wir zunä...
Inhaltsverzeichnis Vorwort 1. Laden Sie MySQL 8.0...
veranschaulichen: Mit mysqldump –all-databases we...
Inhaltsverzeichnis 1. Verwenden von Set()+Array.f...
Vorwort Ich habe vor Kurzem meine bisherigen Noti...
Dieser Artikel entstand aus meinen Beschwerden üb...
Inhaltsverzeichnis <Vorlage> <ul Klasse=...
Verschlüsselung und Entschlüsselung sind wichtige...
Es ist sehr üblich, webpack zum Erstellen einseit...
1. Mentale Reise Als ich kürzlich das Cockpit sch...
Einige Monate nachdem ich 2005 in die Branche eing...
Inhaltsverzeichnis Problembeschreibung: Ursachena...
Der spezifische Code lautet wie folgt: <Stil&g...
1. Umsetzungsideen Der Zweck der Schnittstellensi...