Heim >Computer-Tutorials >Computerwissen >Führen Sie Fuzzy-Matching-SQL-Datenbankabfragen durch

Führen Sie Fuzzy-Matching-SQL-Datenbankabfragen durch

PHPz
PHPznach vorne
2024-01-23 10:30:05956Durchsuche

Datenbank-SQL-Fuzzy-Matching-Abfrage

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

So implementieren Sie die Fuzzy-Suche nach Zahlen in der Sprache C

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

1. Angenommen, der Tabellenname ist „Produkt“, der Produktname ist „Bemerkung“ und die vereinfachte Grenze kann wie folgt geschrieben werden: Wählen Sie „[Name], [Bemerkung]“ aus dem Produktnamen aus, z. B. „%aa%“. Bemerkung wie „%aa%“. Hinweis: Das aa in den einfachen Anführungszeichen oben steht für die in der Fuzzy-Abfrage eingegebenen Zeichen.

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.

Führen Sie Fuzzy-Matching-SQL-Datenbankabfragen durch

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen