如何在参数化 Cosmos 查询中使用"LIKE"



我使用的是Azure.Cosmos API 3.17.1版。如果我这样对我的Cosmos集合运行查询,我会得到我期望的结果:

string Sql = "SELECT c.LastName FROM c where c.LastName like 'Smi%'";
QueryDefinition oQry = new QueryDefinition(Sql);
FeedIterator<myObj> oFI = this.container.GetItemQueryIterator<myObj>(oQry); // returns Smith, Smithers, etc.

如果我试图将其参数化,我将一无所获:

string Sql = "SELECT c.LastName FROM c where c.LastName like '@KeyWord%'";
QueryDefinition oQry = new QueryDefinition(Sql);
oQry.WithParameter(@KeyWord, "Smi");
FeedIterator<myObj> oFI = this.container.GetItemQueryIterator<myObj>(oQry);

这是语法问题还是不受支持?

Tks

不要在参数名称中使用%,也不需要引用它。

请尝试此代码:

string Sql = "SELECT c.LastName FROM c where c.LastName like @KeyWord";
QueryDefinition oQry = new QueryDefinition(Sql);
oQry.WithParameter("@KeyWord", "Smi%");
FeedIterator<myObj> oFI =  container.GetItemQueryIterator<myObj>(oQry);

最新更新