webentwicklung-frage-antwort-db.com.de

Wie schreibe ich eine LIKE-Abfrage in Azure CosmosDB?

Ich möchte Daten aus Cosmos DB mit der folgenden Abfrage abrufen:

SELECT * FROM c WHERE c.pi like '09%001'

(Dies ist eine SQL-Abfrage, die ich in MySQL verwenden kann.)

Hier ist pi ein Zeichenfolgenwert, der 09001001 Oder 09025001 Sein kann.

Gibt es eine Möglichkeit, einen Befehl LIKE in Cosmos DB zu verwenden?

Ich weiß, dass Cosmos DB CONTAINS verwendet, aber dies kann nicht verwendet werden, wenn Sie speziell den Anfang oder das Ende der Zeichenfolge abgleichen möchten.

20
arjan kroon

Derzeit Azure Cosmosdb unterstützt die CONTAINS, STARTSWITH und ENDSWITH integrierte Funktionen, die LIKE entsprechen .

Das Schlüsselwort für LIKE in Cosmosdb lautet Enthält.

SELECT * FROM c WHERE CONTAINS(c.pi, '09')

Also, in Ihrem Fall, wenn Sie dem Muster entsprechen möchten 09%001 müssen Sie verwenden:

SELECT * FROM c WHERE STARTSWITH(c.pi, '09') AND ENDSWITH(c.pi, '001')
19
Sajeetharan