hasprefix operator

Filters a record set for data with a case-insensitive starting string.

For best performance, use strings of three characters or more. hasprefix searches for indexed terms, where a term is three or more characters. If your term is fewer than three characters, the query scans the values in the column, which is slower than looking up the term in the term index.

The following table compares the hasprefix operators using the abbreviations provided:

  • RHS = right-hand side of the expression
  • LHS = left-hand side of the expression
Operator Description Case-Sensitive Example (yields true)
hasprefix RHS is a term prefix in LHS No "North America" hasprefix "ame"
!hasprefix RHS isn't a term prefix in LHS No "North America" !hasprefix "mer"
hasprefix_cs RHS is a term prefix in LHS Yes "North America" hasprefix_cs "Ame"
!hasprefix_cs RHS isn't a term prefix in LHS Yes "North America" !hasprefix_cs "CA"

For more information about other operators and to determine which operator is most appropriate for your query, see datatype string operators.

Performance tips

Note

Performance depends on the type of search and the structure of the data. For best practices, see Query best practices.

When possible, use the case-sensitive hasprefix_cs.

Syntax

T | where Column hasprefix (Expression)

Learn more about syntax conventions.

Parameters

Name Type Required Description
T string ✔️ The tabular input whose records are to be filtered.
Column string ✔️ The column used to filter.
Expression string ✔️ The expression for which to search.

Returns

Rows in T for which the predicate is true.

Example

StormEvents
| summarize event_count=count() by State
| where State hasprefix "la"
| project State, event_count
State event_count
LAKE MICHIGAN 182
LAKE HURON 63
LAKE SUPERIOR 34
LAKE ST CLAIR 32
LAKE ERIE 27
LAKE ONTARIO 8