SQL Server-Umgebung: Wenn die Umgebung falsch ist, lesen Sie bitte die Ideen, um sie selbst zu ändern
wählen Sie * in #temp1 aus Tabelle1 aus, wobei len(col1) > 5 und len(col2) > 5
select * into #temp_end from #temp1 where 1=3
Deklarieren Sie @i int,@ii int
Deklarieren Sie @uid int,@col1 varchar(255),@col2 varchar(255)
Deklarieren Sie den Fetch_Query_Cursor-Cursor für die Auswahl von UID,col1,col2 aus #temp1
Öffnen Sie Fetch_Query_Cursor
Fetch Next From Fetch_Query_Cursor into @uid,@col1,@col2
während @@Fetch_status = 0
beginnen
Wählen Sie @i = 1,@ii=0
while @i
beginnen
if charindex(substring(@col1,@i,1),@col2) > 0
wählen Sie @ii = @ii+1
Wählen Sie @i = @i+1
Ende
Wenn @ii >=5
Einfügen in #temp_end select * from #temp1 wobei Uid = @uid
Fetch Next From Fetch_Query_Cursor into @uid,@col1,@col2
Ende
Fetch_Query_Cursor schließen
Fetch_Query_Cursor freigeben
Wählen Sie * aus #temp_end
Drop-Tabelle #temp1
Tabelle #temp_end löschen
String-Fuzzy-Abfrage beinhaltet hauptsächlich die Eingabe unvollständiger Informationen für die Suche, das heißt, bei jeder Suche wird geprüft, ob der abzufragende Inhalt den eingegebenen Inhalt enthält. Wenn ja, bedeutet dies, dass er gefunden wurde. Im Folgenden finden Sie eine detaillierte Erläuterung der Implementierungsmethode der Fuzzy-Abfrage. Der Code lautet wie folgt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include
#include
#include
int main(int argc, const char * argv[])
{
char str[] = "Hallo, willkommen in China
printf("Geben Sie eine Zeichenfolge ein:n");char str2[20]; //Die zu findende Zeichenfolge
fgets(str2, 19, stdin);
char *res;
res = memchr(str, str2[0], strlen(str)); //Schneiden Sie die Quellzeichenfolge entsprechend dem ersten Zeichen der zu findenden Zeichenfolge ab
if (res == NULL)
{
printf("nichts finden...n");
return 0;
}
int n;
während (1)
{
n = memcmp(res, str2, strlen(str2) - 1); //Vergleiche
if (n != 0)
{
if (strlen(res) {
printf("nichts finden...n");
return 0;
}
sonst
{
//Schneiden Sie weiter, basierend auf dem ersten Zeichen, das Sie finden möchten
res = memchr(res + 1, str2[0], strlen(res));
if (res == NULL)
{
printf("nichts finden...n");
return 0;
}
}
}
sonst
{ //Wenn n = 0, finde
printf("%s wurde gefunden..n", str2);
return 0;
}
}
}
So schreiben Sie eine SQL-Fuzzy-Abfrageanweisung
2. Wählen Sie * aus (Tabellenname), wobei (Suchname) wie „%%“ und die ID wie „% (Einführung)%“ aussieht.
3. Verwenden Sie die Like-Klausel. Beispiel: Wählen Sie * aus [Tabellenname] aus, wobei [Name] wie „%SQL%“ und [Einführung] wie „%Software%“ aussieht. Dies ist die Abfrage, bei der das Feld [Name] „SQL“ und das Feld [Einführung] enthält „Software“ „Aufzeichnung von.
4. selet * from userwobei Name wie „%小%“order by id ascasc für aufsteigende Reihenfolge und desc für absteigende Reihenfolge steht.
Erweiterte Informationen:
Es gibt zwei Hauptansichten zur Definition der Fuzzy-Suche.
Erstens lässt das System einen gewissen Unterschied zwischen den gesuchten Informationen und den Suchfragen zu. Dieser Unterschied ist die Bedeutung von „unscharf“ bei der Suche. Wenn Sie beispielsweise nach dem Namen Smith suchen, finden Sie ähnliche Namen wie Smithe, Smythe, Smyth, Smitt usw.
Bei der zweiten handelt es sich im Wesentlichen um eine Synonymsuche, die automatisch vom Suchsystem durchgeführt wird. Synonyme werden über die Verwaltungsschnittstelle des Systems konfiguriert. Wenn Sie beispielsweise „Computer“ und „Computer“ als Synonyme konfigurieren und nach „Computer“ suchen, werden auch Webseiten mit „Computer“ in den Suchergebnissen angezeigt.
Geben Sie lokale Bilder in das Bildsuchfeld ein,
1. Wenn Ihr Bild einen aussagekräftigen Titel hat, z. B. „Kleidung“, werden in den Suchergebnissen relevante Textsuchergebnisse angezeigt
2. Wenn Ihr Bildtitel keine Bedeutung hat, werden in den Suchergebnissen nur verwandte Bilder angezeigt.
3. Die Suchgenauigkeit variiert mit dem Grad der Zufriedenheit, die mit den verschiedenen Bildern erzielt wird, desto genauer sind sie
Derzeit kann diese Anwendung in Suchmaschinen wie Google und Taobao implementiert werden.
Text-Fuzzy-Suche
Suchmaschinen- oder Portal-Website-Suche: Geben Sie Text in das Suchfeld ein und wählen Sie den Fuzzy-Suchmodus, um passende Ergebnisse zu erhalten.
Datenbanksuche: Die allgemeine Fuzzy-Abfrageanweisung lautet wie folgt: SELECT field FROM table WHERE bestimmtes Feld Ähnliche Bedingung.
In Bezug auf Bedingungen bietet SQL vier Matching-Modi:
1, %: steht für beliebige 0 oder mehr Zeichen. Kann mit Zeichen jeder Art und Länge übereinstimmen. Wenn es sich um Chinesisch handelt, verwenden Sie bitte zwei Prozentzeichen (%%), um es auszudrücken.
2, _: steht für ein beliebiges einzelnes Zeichen. Entspricht einem einzelnen beliebigen Zeichen, das häufig zur Begrenzung der Zeichenlänge von Ausdrücken verwendet wird:
3. [ ]: Gibt eines der in Klammern aufgeführten Zeichen an (ähnlich einem regulären Ausdruck). Geben Sie ein Zeichen, eine Zeichenfolge oder einen Bereich an, der mit einem dieser Zeichen übereinstimmt.
4. [^]: Zeigt ein einzelnes Zeichen an, das nicht in Klammern aufgeführt ist. Sein Wert ist derselbe wie [], aber er muss mit jedem anderen Zeichen als dem angegebenen Zeichen übereinstimmen.
5. Wenn der Abfrageinhalt Platzhalter enthält
Aufgrund von Platzhaltern können unsere Abfrageanweisungen für die Sonderzeichen „%“, „_“ und „[“ nicht normal implementiert werden. Die Sonderzeichen können jedoch normal abgefragt werden, wenn sie in „[ ]“ eingeschlossen sind.
In verschiedenen Datenbanken sind die Fuzzy-Suchanweisungen unterschiedlich, was in der Systemhilfedokumentation zu finden ist.
Referenzquelle: Sogou-Enzyklopädie: Fuzzy-Suche
Das obige ist der detaillierte Inhalt vonFühren Sie Fuzzy-Matching-SQL-Datenbankabfragen durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!