LIKE – Frågespråk i Cosmos DB (i Azure och Fabric)

Nyckelordet LIKE ett booleskt värde beroende på om en specifik teckensträng matchar ett angivet mönster. Ett mönster kan innehålla vanliga tecken och jokertecken.

Tips/Råd

Du kan skriva logiskt likvärdiga frågor med hjälp av antingen nyckelordet LIKE eller RegexMatch systemfunktionen. Du ser samma indexanvändning oavsett vilket alternativ du väljer. Valet av vilket alternativ som ska användas baseras till stor del på syntaxinställningar.

Anmärkning

Eftersom LIKE kan använda ett index bör du skapa ett intervallindex för egenskaper som du jämför med .LIKE

Du kan använda följande jokertecken med LIKE:

Description Example
% Valfri sträng med noll eller fler tecken. WHERE c.description LIKE "%SO%PS%"
_ (understreck) Alla enskilda tecken. WHERE c.description LIKE"%SO_PS%"
[ ] Ett enskilt tecken inom det angivna intervallet ([a-f]) eller uppsättningen ([abcdef]). WHERE c.description LIKE "%SO[t-z]PS%"
[^] Ett enskilt tecken ligger inte inom det angivna intervallet ([^a-f]) eller uppsättningen ([^abcdef]). WHERE c.description LIKE "%SO[^abc]PS%"

Tecknet % matchar valfri sträng med noll eller fler tecken. Genom att till exempel placera en % i början och slutet av mönstret returnerar följande fråga alla objekt där det angivna fältet innehåller frasen som en delsträng:

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name LIKE "%driver%"

Om du bara använde ett % tecken i slutet av mönstret skulle du bara returnera objekt med en beskrivning som började med fruit:

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name LIKE "fruit%"

På samma sätt anger jokertecknet i början av mönstret att du vill matcha värden med det angivna värdet som ett prefix:

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name LIKE "%Road"

Nyckelordet NOT inverterar resultatet av LIKE nyckelordets uttrycksutvärdering. Det här exemplet returnerar alla objekt som inte matchar LIKE uttrycket.

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.name NOT LIKE "%winter%"

Du kan söka efter mönster som innehåller ett eller flera jokertecken med hjälp av ESCAPE -satsen. Om du till exempel vill söka efter beskrivningar som innehåller strängen 20%vill du inte tolka det % som ett jokertecken. Det här exemplet tolkar ^ som escape-tecknet så att du kan undkomma en specifik instans av %.

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.description LIKE "%20^%%" ESCAPE "^"

Du kan omsluta jokertecken inom hakparenteser för att behandla dem som literaltecken. När du omger ett jokertecken inom hakparenteser tar du bort eventuella särskilda attribut. Den här tabellen innehåller exempel på literaltecken.

Parsat värde
LIKE "20-30[%]" 20-30%
LIKE "[_]n" _n
LIKE "[ [ ]" [
LIKE "]" ]