如何在参数化 Cosmos 查询中使用 "LIKE"
How to use "LIKE" in parameterized Cosmos query
我正在使用 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);
这是语法问题还是不受支持?
感谢
不要在参数名称中使用 %
,也不需要用引号引起来。
请试试这个代码:
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);
我正在使用 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);
这是语法问题还是不受支持?
感谢
不要在参数名称中使用 %
,也不需要用引号引起来。
请试试这个代码:
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);