Zusammenfassung der MySQL-Datenbank-ähnlichen Anweisung zur Platzhalter-Fuzzy-Abfrage

Zusammenfassung der MySQL-Datenbank-ähnlichen Anweisung zur Platzhalter-Fuzzy-Abfrage

MySQL-Fehler: Parameterindex außerhalb des gültigen Bereichs (1 > Anzahl der Parameter, also 0) —— Zusammenfassung der Fuzzy-Abfrage mit Platzhaltern in MySQL-Datenbanken

Einführung: Heute hat die Konsole beim Verwenden von MySQL-Anweisungen zum Ausführen von Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgängen den folgenden Fehler gemeldet: „Parameterindex außerhalb des gültigen Bereichs (1 > Anzahl der Parameter, also 0).“ Übersetzt bedeutet dies: Die Ergebnisdaten sind 1, der wahre Wert sollte 0 sein, der Parameter liegt außerhalb der Grenzen und es tritt ein Fehler auf. Damit wird auch klar, wo uns ein Fehler unterlaufen ist – nämlich beim Parameter, also der Behandlung des Platzhalters „?“. Dieser Artikel analysiert die Fehler, die bei der Ausführung gängiger SQL-Anweisungen und bei der Verwendung der Like-Anweisung für Platzhalter-Fuzzy-Abfragen auftreten, und bietet Lösungen.

Bildbeschreibung hier einfügen


1. SQL-Anweisungen analysieren

1. Abfrageanalyse gängiger SQL-Anweisungen

Lassen Sie uns zunächst die SQL-Anweisung analysieren, die ich zuvor verwendet habe:

String SQL = "Wählen Sie Count(*) aus Tab_Route aus, wobei CID = ?";

Hinweis : Wir verwenden direkt das Platzhalterzeichen "?" , um den Parameter zu ersetzen, und verwenden das JdbcTemplate des Spring-Frameworks, um Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge durchzuführen. Hier gibt es kein Problem.

2. So verarbeiten Sie gängige SQL-Abfrageanweisungen

Sollte hierbei ein Fehler auftreten, beheben Sie diesen bitte wie folgt:

Überprüfen Sie das Format des Platzhalters "?" . Beachten Sie, dass dieser in der englischen Eingabemethode eingegeben wird, nicht das chinesische Fragezeichen. Überprüfen Sie die SQL-Anweisung. Die mit dem Platzhalter übergebenen Parameter werden nicht in Anführungszeichen gesetzt. Folgendes ist beispielsweise falsch:

String SQL = "Wählen Sie Count(*) aus Tab_Route aus, wobei CID = '?" ist.

3. Verwenden Sie die Platzhalteranalyse für Fuzzy-Abfrageanweisungen

In ähnlicher Weise verwenden wir immer noch die obige Methode, um Fuzzy-Abfrageoperationen durchzuführen und schauen uns die SQL-Anweisung an, die fehlschlägt:

String SQL = "Wählen Sie count(*) aus tab_route aus, wobei rname wie '%?%' ist;

Das Ausführungsergebnis ist ein Fehler : Parameter index out of range (1 > number of parameters, which is 0) .

Ergebnisanalyse : Die Ergebnisdaten sind 1, der wahre Wert sollte 0 sein, der Parameter liegt außerhalb der Grenzen und es tritt ein Fehler auf.

Wir stellen klar, dass die folgende Aussage kein Problem darstellt:

String SQL = Auswahl * von Tab_Route, wobei Rname wie „%张%“ ist;

Damit wird auch klar, wo uns ein Fehler unterlaufen ist – nämlich beim Parameter, also der Behandlung des Platzhalters "?" in der Like-Anweisung .

2. Analyse der Fuzzy-Abfrage mit Platzhaltern in Like-Anweisungen

1. Anwendungsszenarien von Like-Anweisungen

Die Verwendung des Platzhalters „Like“ zum Ausführen von Fuzzy-Abfragen begegnet uns in Projekten häufig, beispielsweise bei Fuzzy-Abfragen für Daten im Suchfeld.

2. Fuzzy-Abfrageanalyse

Es ist nicht möglich '%?%' direkt in der SQL-Anweisung zu analysieren, daher müssen wir die verbundene Zeichenfolge verarbeiten, die dynamische Verkettungsmethode concat() verwenden, um den Inhalt von '%?%' zu verbinden, und dann die Vorgänge „Hinzufügen“, „Löschen“, „Ändern“ und „Abfragen“ ausführen.

concat(str1, str2, str3...) erzeugt einen neuen String

3. Korrekte Sätze

String sql = "Wählen Sie count(*) aus tab_route, wobei rname wie concat('%',?,'%') lautet";

3. MyBatis-ähnliche Fuzzy-Abfrage und Keyword-Unterscheidung

Wenn Sie in MyBatis eine Fuzzy-Abfrage verwenden, beachten Sie bitte, dass das Schlüsselwort #{str} lautet und die Abfrageklausel:

Wählen Sie * aus der Tabelle, in der der Name wie folgt lautet: concat('%',#{name},'%');

Wenn Sie ein Sortierfeld hinzufügen, beachten Sie bitte, dass das Schlüsselwort lautet: ${str} und die Abfrageklausel:

Wählen Sie * aus der Tabelle mit dem Namen wie concat('%',#{name},'%'), sortiert nach ${id};

Zusammenfassung: Dieser Artikel analysiert die Fehler, die bei der Ausführung gewöhnlicher SQL-Anweisungen und bei der Verwendung von Like-Anweisungen für Platzhalter-Fuzzy-Abfragen auftreten, und bietet entsprechende Lösungen. Gleichzeitig werden die Funktionsweise der Fuzzy-Abfrage in MyBatis und die Unterscheidung zwischen verschiedenen Schlüsselwörtern ergänzt. Der Weg zum Codieren ist lang, daher hoffe ich, dass Sie vorsichtig sind.

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über die Zusammenfassung der MySQL-Datenbank-ähnlichen Anweisungs-Platzhalter-Fuzzy-Abfrage. Weitere relevante MySQL-Fuzzy-Abfrage-ähnliche Inhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Verwendung von MySQL-Fuzzy-Abfragen (regulär, Platzhalter, integrierte Funktion)
  • Mysql | Detaillierte Erklärung der Fuzzy-Abfrage mit Platzhaltern (wie, %, _)
  • Eine kurze Diskussion über die Implementierung von Fuzzy-Abfragen mit Platzhaltern in MySQL
  • Eine kurze Erläuterung zum Wildcard-Escape in MySQL-Fuzzy-Abfragen
  • MYSQL - Wichtige Lesehinweise Kapitel 8: Verwenden von Platzhaltern zum Filtern
  • Was bei der Verwendung von Platzhaltern in MySQL zu beachten ist
  • Detaillierte Einführung in die Verwendung von MySql wie Fuzzy-Abfrage-Platzhaltern
  • MySQL regulärer Ausdruck LIKE Platzhalter
  • MySQL-Platzhalter (erweiterte SQL-Filterung)

<<:  Analyse von 2 Token-Gründen und Beispielcode in der Webprojektentwicklung

>>:  Einige Vorschläge zur Verbesserung der Nginx-Leistung

Artikel empfehlen

Beispielcode zum Generieren eines QR-Codes mit js

Vor einiger Zeit musste das Projekt die Funktion ...

Wissen Sie, wie viele Verbindungen ein Linux-Server verarbeiten kann?

Vorwort Sehen wir uns zunächst an, wie eine TCP-V...

MySQL-Triggerprinzip und Analyse von Anwendungsbeispielen

Dieser Artikel erläutert anhand von Beispielen di...

Erste Schritte Tutorial für Anfänger: Domänennamenauflösung und Bindung

Wie können Sie also nach der Registrierung eines ...

Ubuntu 15.04 öffnet den MySQL-Remote-Port 3306

Ubuntu 15.04 öffnet den MySQL-Remote-Port 3306. A...

Detaillierte Einführung in den HTML-Head-Tag

Der HTML-Kopfteil enthält viele Tags und Elemente,...

Mobile Web-Bildschirmanpassung (rem)

Vorwort Ich habe vor Kurzem meine bisherigen Noti...

Memcached-Methode zum Erstellen eines Cache-Servers

Vorwort Viele Webanwendungen speichern Daten in e...

So erhalten Sie den Inhalt einer TXT-Datei über FileReader in JS

Inhaltsverzeichnis JS erhält den Inhalt der TXT-D...

Kapitel zur Entwicklung von WeChat-Applets: Fallstricke

Vor kurzem habe ich an der Entwicklung des ersten...

Was ist die Datei mysql-bin.000001 in MySQL? Kann sie gelöscht werden?

Nachdem ich MySQL über Ports installiert hatte, s...