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

HTML+CSS zur Realisierung einer einfachen Navigationsleistenfunktion

Ohne weitere Umschweife komme ich gleich zum Code...

Tutorial-Diagramm zur VMware-Installation des Ubuntu 20.04-Betriebssystems

Memo: Einfach erleben. Eintrag: Nr. 209 Diese Bei...

Beispiel und Lösung für einen SQL-Injection-Sicherheitslückenprozess

Codebeispiel: öffentliche Klasse JDBCDemo3 { öffe...

Beispielcode zur einfachen Implementierung des Seitenlayouts mit Flex-Layout

Kommen wir ohne weitere Umschweife direkt zum Cod...

Detaillierte Erklärung und Zusammenfassung der URL zur Datenbankverbindung

Detaillierte Erklärung und Zusammenfassung der UR...

Der Unterschied zwischen ${param} und #{param} in MySQL

Der von ${param} übergebene Parameter wird als Te...

Einige Dinge, die beim Erstellen einer Webseite zu beachten sind

--Backup der Homepage 1.txt-Text 2. Scannen Sie da...

Mysql teilt Zeichenfolge durch gespeicherte Prozedur in Array auf

Um einen String in ein Array aufzuteilen, müssen ...

So konfigurieren Sie Umgebungsvariablen in einer Linux-Umgebung

JDK-Downloadadresse: http://www.oracle.com/techne...

mysql installer web community 5.7.21.0.msi grafik-tutorial zur installation

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung des Sidecar-Modus in Docker Compose

Inhaltsverzeichnis Was ist Docker Compose Anforde...