web-dev-qa-db-fra.com

Comment écrire une requête LIKE dans Azure CosmosDB?

Je souhaite récupérer des données de Cosmos DB avec la requête suivante:

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

(Il s'agit d'une requête SQL, que je peux utiliser dans MySQL)

Ici, pi est une valeur de chaîne, qui peut être 09001001 ou 09025001.

Existe-t-il un moyen d'utiliser une commande LIKE dans Cosmos DB?

Je sais que la base de données cosmos utilise CONTAINS, mais cela ne peut pas être utilisé lorsque vous souhaitez faire correspondre spécifiquement le début ou la fin de la chaîne.

20
arjan kroon

Actuellement Azure Cosmosdb prend en charge le CONTAINS, STARTSWITH, et ENDSWITH fonctions intégrées équivalentes à LIKE .

Le mot-clé pour LIKE dans Cosmosdb est Contient.

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

Donc, dans votre cas, si vous souhaitez faire correspondre le modèle 09%001, vous devez utiliser:

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