Freigeben über


search-Operator

Durchsucht ein Textmuster in mehreren Tabellen und Spalten.

Hinweis

Wenn Sie die spezifischen Tabellen und Spalten kennen, die Sie durchsuchen möchten, ist es leistungsfähiger, die Union und die Operatoren zu verwenden. Der search Operator kann bei der Suche über eine große Anzahl von Tabellen und Spalten langsam sein.

Syntax

[T|] search [kind= CaseSensitivity ] [in (TableSources)] SearchPredicate

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
T string Die tabellarische Datenquelle, die durchsucht werden soll, z. B. einen Tabellennamen, einen Union-Operator oder die Ergebnisse einer tabellarischen Abfrage. Es kann nicht zusammen mit TableSources angezeigt werden.
CaseSensitivity string Ein Kennzeichen, das das Verhalten aller string skalaren Operatoren steuert, z has. B. in Bezug auf die Groß-/Kleinschreibung. Gültige Werte sind default, case_insensitive, case_sensitive. Die Optionen default sind synonym, da das Standardverhalten die Groß-/ case_insensitive Kleinschreibung nicht beachtet.
TableSources string Eine durch Trennzeichen getrennte Liste der Tabellennamen", die an der Suche teilnehmen sollen. Die Liste weist die gleiche Syntax wie die Liste des Union-Operators auf. Es kann nicht zusammen mit TabularSource angezeigt werden.
SearchPredicate string ✔️ Ein boolescher Ausdruck, der für jeden Datensatz in der Eingabe ausgewertet werden soll. Wenn er zurückgibt true, wird der Datensatz ausgegeben. Siehe Such-Prädikatsyntax.

Such-Prädikatsyntax

Mit SearchPredicate können Sie in allen Spalten einer Tabelle nach bestimmten Begriffen suchen. Der Operator, der auf einen Suchbegriff angewendet wird, hängt von der Anwesenheit und Platzierung eines Platzhalters sternchen (*) im Ausdruck ab, wie in der folgenden Tabelle dargestellt.

Literal Operator
billg has
*billg hassuffix
billg* hasprefix
*billg* contains
bi*lg matches regex

Sie können die Suche auch auf eine bestimmte Spalte beschränken, nach einer exakten Übereinstimmung anstelle einer Ausdrucksausstimmung suchen oder nach regulärem Ausdruck suchen. Die Syntax für jeden dieser Fälle wird in der folgenden Tabelle gezeigt.

Syntax Erklärung
ColumnName:StringLiteral Diese Syntax kann verwendet werden, um die Suche auf eine bestimmte Spalte einzuschränken. Das Standardverhalten besteht darin, alle Spalten zu durchsuchen.
ColumnName==StringLiteral Diese Syntax kann verwendet werden, um nach exakten Übereinstimmungen einer Spalte mit einem Zeichenfolgenwert zu suchen. Das Standardverhalten besteht darin, nach einer Ausdrucksversprechung zu suchen.
Column matches regex StringLiteral Diese Syntax gibt den Regulären Ausdrucksabgleich an, in dem StringLiteral das regex-Muster ist.

Verwenden Sie boolesche Ausdrücke, um Bedingungen zu kombinieren und komplexere Suchvorgänge zu erstellen. Würde z "error" and x==123 . B. eine Suche nach Datensätzen mit dem Ausdruck error in allen Spalten und dem Wert 123 in der x Spalte ergeben.

Hinweis

Wenn TabularSource und TableSources nicht angegeben werden, wird die Suche über alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich übertragen.

Beispiele für Such-Prädikatsyntax

# Syntax Bedeutung (Äquivalent where) Kommentare
1 search "err" where * has "err"
2 search in (T1,T2,A*) "err" Union T1,T2,A* | wobei * hat "err"
3 search col:"err" where col has "err"
4 search col=="err" where col=="err"
5 search "err*" where * hasprefix "err"
6 search "*err" where * hassuffix "err"
7 search "*err*" where * contains "err"
8 search "Lab*PC" where * matches regex @"\bLab.*PC\b"
9 search * where 0==0
10 search col matches regex "..." where col matches regex "..."
11 search kind=case_sensitive Bei allen Zeichenfolgenvergleichen wird zwischen Groß- und Kleinschreibung unterschieden.
12 search "abc" and ("def" or "hij") where * has "abc" and (* has "def" or * has hij")
13 search "err" or (A>a and A<b) where * has "err" or (A>a and A<b)

Hinweise

Im Gegensatz zum Suchoperator unterstützt der search Operator folgendes nicht:

  1. withsource=: Die Ausgabe enthält immer eine Spalte vom Typstring, $table deren Wert der Tabellenname ist, aus dem jeder Datensatz abgerufen wurde (oder einige vom System generierte Namen, wenn die Quelle keine Tabelle, sondern ein zusammengesetzter Ausdruck ist).
  2. project=, project-smart: Das Ausgabeschema entspricht dem project-smart Ausgabeschema.

Beispiele

Suchen Sie nach einem Begriff über alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich.

search "Green"

Die Ausgabe enthält Datensätze aus den Customers, Productsund SalesTable Tabellen. In Customers den Datensätzen werden alle Kunden mit dem Nachnamen "Grün" angezeigt, und die Products Datensätze SalesTable zeigen Produkte mit einer Erwähnung von "Grün".

Suchen Sie nach Datensätzen, die mit beiden Ausdrücken über alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich übereinstimmen.

search "Green" and ("Deluxe" or "Proseware")

Durchsuchen einer bestimmten Tabelle

Suchen Sie nur in der Customers Tabelle.

search in (Products) "Green"

Suchen Sie nach Datensätzen, die beide Begriffe mit Groß-/Kleinschreibung über alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich übereinstimmen.

search kind=case_sensitive "blue"

Bestimmte Spalten durchsuchen

Suchen Sie nach einem Begriff in den Spalten "Vorname" und "Nachname" über allen uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich.

search FirstName:"Aaron" or LastName:"Hughes"

Einschränken der Suche nach Zeitstempel

Suchen Sie nach einem Begriff über allen uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich, wenn der Ausdruck in einem Datensatz mit einem Datum größer als das angegebene Datum angezeigt wird.

search "Hughes" and DateKey > datetime('2009-01-01')

Tipps zur Leistungssteigerung

# Tipp Bevorzugt Over
1 Verwenden Sie lieber einen einzelnen search Operator über mehrere aufeinander folgende search Operatoren. search "billg" and ("steveb" or "satyan") suchen "billg" | suche "steveb" oder "satyan"
2 Bevorzugen Sie es, innerhalb des search Operators zu filtern search "billg" and "steveb" search * | wobei * hat "billg" und * hat "steveb"