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 effizienter, die Operatoren union und where zu verwenden. Der search Operator kann bei der Suche in einer großen Anzahl von Tabellen und Spalten langsam sein.

Syntax

[T|] search [kind=Groß-/Kleinschreibung ] [in(TableSources)] SearchPredicate

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich Beschreibung
T string Die tabellarische Datenquelle, die durchsucht werden soll, z. B. ein Tabellenname, ein Union-Operator oder die Ergebnisse einer tabellarischen Abfrage. Kann nicht zusammen mit TableSources angezeigt werden.
CaseSensitivity string Ein Flag, 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 und case_insensitive sind synonym, da beim Standardverhalten die Groß-/Kleinschreibung nicht beachtet wird.
TableSources string Eine durch Trennzeichen getrennte Liste von Tabellennamen mit Einem Feldhalter, die an der Suche teilnehmen sollen. Die Liste weist die gleiche Syntax wie die Liste des Unionoperators auf. 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. Weitere Informationen finden Sie unter Suchen von Prädikatsyntax.

Prädikatsyntax suchen

Mit SearchPredicate können Sie in allen Spalten einer Tabelle nach bestimmten Begriffen suchen. Der Operator, der auf einen Suchbegriff angewendet wird, hängt vom Vorhandensein und der Platzierung eines Platzhaltersterns (*) im Begriff ab, wie in der folgenden Tabelle gezeigt.

Literal Betreiber
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 eines Begriffs suchen oder nach einem regulären Ausdruck suchen. Die Syntax für jeden dieser Fälle ist in der folgenden Tabelle dargestellt.

Syntax Erklärung
Columnname:StringLiteral Diese Syntax kann verwendet werden, um die Suche auf eine bestimmte Spalte zu beschrä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 Begriffsbesprechung zu suchen.
Spaltematches regexStringLiteral Diese Syntax gibt einen regulären Ausdrucksabgleich an, bei dem StringLiteral das regex-Muster ist.

Verwenden Sie boolesche Ausdrücke, um Bedingungen zu kombinieren und komplexere Suchvorgänge zu erstellen. Dies würde beispielsweise zu einer Suche nach Datensätzen führen, "error" and x==123 die den Begriff error in allen Spalten und den Wert 123 in der x Spalte enthalten.

Hinweis

Wenn sowohl TabularSource als auch TableSources weggelassen werden, wird die Suche über alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich übertragen.

Syntaxbeispiele für Die Suche nach Prädikaten

# Syntax Bedeutung (entsprechend where) Kommentare
1 search "err" where * has "err"
2 search in (T1,T2,A*) "err" Union T1,T2,A* | wobei * "err" hat
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 die Groß-/Kleinschreibung beachtet.
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 $table Typ string , deren Wert der Tabellenname ist, aus dem jeder Datensatz abgerufen wurde (oder einen vom System generierten 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 für alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich.

search "Green"

Die Ausgabe enthält Datensätze aus den CustomersTabellen , Productsund SalesTable . Die Customers Datensätze zeigen alle Kunden mit dem Nachnamen "Grün", und die ProductsSalesTable Datensätze zeigen Produkte mit einigen Erwähnung von "Grün".

Suchen Sie nach Datensätzen, die beide Begriffe ü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, bei denen die Groß-/Kleinschreibung für alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich berücksichtigt wird.

search kind=case_sensitive "blue"

Suchen nach bestimmten Spalten

Suchen Sie in den Spalten "FirstName" und "LastName" über alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich nach einem Begriff.

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

Einschränken der Suche nach Zeitstempel

Suchen Sie über alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich nach einem Ausdruck, 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 Prefer Over
1 Verwenden Sie lieber einen einzelnen search Operator als mehrere aufeinanderfolgende search Operatoren. search "billg" and ("steveb" or "satyan") suche "billg" | "steveb" oder "satyan" suchen
2 Filtern sie lieber innerhalb des search Operators search "billg" and "steveb" suche * | wobei * hat "billg" und * "steveb"