Heim Datenbank MySQL-Tutorial Sprechen Sie über das Problem der Einbindung von SQL-Abfragefeldern in Anweisungen

Sprechen Sie über das Problem der Einbindung von SQL-Abfragefeldern in Anweisungen

Aug 11, 2017 pm 03:08 PM
Enthalten 字段 语句

Apropos SQL-Fuzzy-Abfragen: Das erste, was mir in den Sinn kommt, sollte das Schlüsselwort „like“ sein. Wenn wir Daten abfragen müssen, die ein bestimmtes Feld enthalten, verwenden wir häufig die Abfragemethode „%keyword%“. Spezifische Codebeispiele finden Sie in diesem Artikel

Vorwort

Wenn es um Fuzzy-Abfragen in SQL geht, ist das Erste, was passiert mind sollte das Schlüsselwort like sein.

Wenn wir Daten abfragen müssen, die ein bestimmtes Feld enthalten, verwenden wir häufig die Abfragemethode „%keyword%“. Zum Beispiel:


SELECT ... FROM 表名 WHERE 字段名 LIKE '%关键字%'
Nach dem Login kopieren

Dies sollte als typische „enthält XXX“-Methode betrachtet werden, aber was ist, wenn wir Daten abfragen müssen, deren Felder in bestimmten Zeichen enthalten sind? ?

Zum Beispiel habe ich eine Kontaktdatentabelle ConnectName, die ein Feld zum Aufzeichnen von Namen enthält. Ich möchte die Kontaktinformationen der Personen Xiaolan und Haiyuan erhalten. Unter normalen Umständen fällt uns als Erstes Folgendes ein:


SELECT * FROM ConnectName 
WHERE
  name = '小兰'
  OR name = '灰原'
Nach dem Login kopieren

Dieser Ansatz kann diesen Zweck erreichen. Wenn ich zu diesem Zeitpunkt plötzlich eine andere Person überprüfen möchte, beispielsweise „Conan“, müssen wir die SQL-Struktur ändern und einen Where-Bedingungssatz hinzufügen:


SELECT * FROM ConnectName 
WHERE
  name = '小兰'
  OR name = '灰原'
  OR name = '柯南'
Nach dem Login kopieren

Wir wissen, dass die OR-bedingte Abfrage selbst ineffizient ist und die Strukturänderungsanweisung in MyBatis etwas schwieriger zu implementieren ist (natürlich kann sie auch implementiert werden, indem man einfach die eingefügten Felder durchläuft).

Kann es einfacher sein? Kann ich alle Schlüsselwörter zusammenfassen und nur eine Where-Bedingung verwenden, um dies zu erreichen?

CHARINDEX erscheint

Zu diesem Zeitpunkt können wir das Schlüsselwort CHARINDEX verwenden, um ein bestimmtes Feld zurückzugeben, das in einer Textzeichenfolge erscheint Die Position ähnelt der Verwendung von Strings indexOf. Lassen Sie uns ohne weiteres eine Kastanie angeben:


CHARINDEX('李白','曹操很帅') =0
Nach dem Login kopieren

In der Kastanie oben ist sie nicht enthalten, da Cao Cao ist ein sehr schönes Schlüsselwort, daher kann es nicht gefunden werden, und der Index der Zeichen wird 1 zurückgegeben.

Nachdem wir verstanden haben, wie es verwendet wird, können wir das Schlüsselwort CHARINDEX zur Optimierung verwenden unsere SQL-Anweisung:

CHARINDEX('李白','李白很帅') =1
Nach dem Login kopieren

Wenn der dem Namensfeld entsprechende Name in „Conan Xiaolan Haibara“ erscheint, dann gibt die CHARINDEX-Funktion einen Wert größer als 1 zurück, und wir können die Daten bekommen, die wir wollen (die drei können auch fröhlich zusammen spielen) ^-^)

Die entsprechende mybatis-Implementierung ist auch relativ einfach

SELECT * FROM ConnectName 
WHERE
  CHARINDEX(name ,'小兰灰原柯南')>0
Nach dem Login kopieren

Wenn wir später eine neue Person hinzufügen möchten, beispielsweise Mouri Kogoro, müssen Sie nur „Xiaolan Haibara Conan Mouri Kogoro“ zu den eingehenden Parametern hinzufügen.

Das obige ist der detaillierte Inhalt vonSprechen Sie über das Problem der Einbindung von SQL-Abfragefeldern in Anweisungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

NoSuchFieldError in Java – Lösung für Feld nicht gefunden NoSuchFieldError in Java – Lösung für Feld nicht gefunden Jun 25, 2023 am 11:33 AM

NoSuchFieldError in Java – Lösung für das nicht gefundene Feld Java ist eine höhere Programmiersprache, die häufig in Unternehmensanwendungen und der Datenverarbeitung im großen Maßstab verwendet wird. Während des Entwicklungsprozesses von Java können Fehler wie NoSuchFieldError auftreten. Dieser Fehler bedeutet, dass die JVM das erforderliche Feld zur Laufzeit nicht finden kann. In diesem Artikel werfen wir einen tieferen Blick auf NoSuchFieldError und wie man es beheben kann. Was ist NoSuchFieldE?

Wie kann man in PHP feststellen, ob ein Feld leer ist? Wie kann man in PHP feststellen, ob ein Feld leer ist? Mar 20, 2024 pm 03:09 PM

PHP ist eine in der Website-Entwicklung weit verbreitete Skriptsprache. Für Entwickler ist es oft notwendig, festzustellen, ob ein Feld leer ist. In PHP kann mit einigen einfachen Methoden festgestellt werden, ob ein Feld leer ist. In diesem Artikel erfahren Sie, wie Sie feststellen können, ob ein Feld in PHP leer ist, und stellen spezifische Codebeispiele als Referenz bereit. In PHP können Sie normalerweise die Funktion empty() oder isset() verwenden, um festzustellen, ob ein Feld leer ist. Als nächstes stellen wir die Verwendung dieser beiden Funktionen vor. Verwenden Sie die Funktion empty()

Welche Pakete sind für die Einführung von jQuery erforderlich? Welche Pakete sind für die Einführung von jQuery erforderlich? Feb 23, 2024 pm 12:00 PM

jQuery ist eine bekannte JavaScript-Bibliothek, die einfache und leistungsstarke Funktionen zur Vereinfachung der JavaScript-Programmierung bereitstellt. Wenn Sie jQuery in Ihr Webprojekt einführen, müssen Sie der HTML-Datei den folgenden Code hinzufügen, um die erforderlichen Pakete einzuführen: Meine Webseite

Was bedeutet MySQL-Feld? Was bedeutet MySQL-Feld? Jul 10, 2023 pm 02:14 PM

Ein MySQL-Feld ist eine Spalte eines bestimmten Typs und einer bestimmten Länge in einer MySQL-Datenbanktabelle, die zum Speichern von Daten verwendet wird. In MySQL muss jedes Feld einen bestimmten Datentyp haben, darunter Ganzzahlen, Gleitkommazahlen, Zeichenfolgen, Datumsangaben und Uhrzeiten.

Multi-Catch-Anweisung in PHP8.0 Multi-Catch-Anweisung in PHP8.0 May 14, 2023 pm 01:51 PM

Mit der Entwicklung von Webanwendungen wurde die PHP-Sprache in großem Umfang in der Webentwicklung eingesetzt. In der PHP8.0-Version wurde eine neue Sprachfunktion eingeführt – die Multi-Catch-Anweisung. Was ist eine Multi-Catch-Anweisung? In früheren PHP-Versionen mussten Entwickler mehrere Catch-Anweisungen schreiben, um mehrere Ausnahmetypen zu behandeln. Der folgende Codeblock zeigt beispielsweise die Behandlung von zwei verschiedenen Ausnahmen: try{//Somecodethatmay

Wie kann ich mithilfe von JavaScript feststellen, ob eine Zeichenfolge bestimmte Zeichen enthält? Wie kann ich mithilfe von JavaScript feststellen, ob eine Zeichenfolge bestimmte Zeichen enthält? Oct 21, 2023 am 08:23 AM

Wie kann ich mithilfe von JavaScript feststellen, ob eine Zeichenfolge bestimmte Zeichen enthält? In JavaScript können wir verschiedene Methoden verwenden, um festzustellen, ob eine Zeichenfolge bestimmte Zeichen enthält. Im Folgenden werden drei häufig verwendete Methoden vorgestellt und entsprechende Codebeispiele gegeben. Methode 1: Verwenden Sie die Methode indexOf() Sie können die Methode indexOf() der Zeichenfolge verwenden, um zu bestimmen, ob eine Zeichenfolge die angegebenen Zeichen enthält. Es gibt den Index des ersten Vorkommens eines bestimmten Zeichens in einer Zeichenfolge zurück, z

So fügen Sie Felder zur Datenbanktabelle hinzu So fügen Sie Felder zur Datenbanktabelle hinzu Mar 18, 2021 pm 02:13 PM

Methoden zum Hinzufügen von Feldern in der Tabelle: 1. Verwenden Sie die Anweisung „ALTER TABLE table name ADD new field name data type;“, um Felder am Ende hinzuzufügen. 2. Verwenden Sie die Anweisung „ALTER TABLE table name ADD new field name data type FIRST;“ "-Anweisung, um es am Anfang hinzuzufügen Field; 3. Verwenden Sie die Anweisung „ALTER TABLE table name ADD new field name data type [constraints] AFTER previous field name;", um ein Feld in der Mitte hinzuzufügen.

Wie implementiert man die Anweisung zum Einfügen von Daten in MySQL? Wie implementiert man die Anweisung zum Einfügen von Daten in MySQL? Nov 08, 2023 am 11:48 AM

Wie implementiert man die Anweisung zum Einfügen von Daten in MySQL? Bei der Verwendung einer MySQL-Datenbank ist das Einfügen von Daten ein sehr einfacher und häufiger Vorgang. Durch das Einfügen von Daten können neue Datensätze zu Datenbanktabellen hinzugefügt werden, um den Geschäftsbetrieb zu unterstützen. In diesem Artikel wird erläutert, wie Sie mit der INSERT-Anweisung in MySQL Dateneinfügungsvorgänge implementieren, und es werden spezifische Codebeispiele bereitgestellt. Die INSERT-Anweisung in MySQL wird verwendet, um neue Datensätze in die Datenbanktabelle einzufügen. Das grundlegende Syntaxformat lautet wie folgt: INSERTINTOt

See all articles