C# 在MySQL中使用Json字段,导致行为不一致(C)
我试图确定一个值是否已经存在于一个简单的Jason数组中 在我的代码中,我构建了以下字符串:C# 在MySQL中使用Json字段,导致行为不一致(C),c#,mysql,json,C#,Mysql,Json,我试图确定一个值是否已经存在于一个简单的Jason数组中 在我的代码中,我构建了以下字符串: SELECT * FROM Groups WHERE JSON_CONTAINS(Members,'7') AND CompanyId = 1 AND Name ="QA" var numRowsUpdated = cmd.ExecuteNonQuery(); json列的内容如下:[3,7] 如果数组中是否有7,则返回的值始终为-1。 将相同的字符串粘贴到MySQL Workbench中,我得
SELECT *
FROM Groups
WHERE JSON_CONTAINS(Members,'7') AND CompanyId = 1 AND Name ="QA"
var numRowsUpdated = cmd.ExecuteNonQuery();
json列的内容如下:[3,7]
如果数组中是否有7,则返回的值始终为-1。
将相同的字符串粘贴到MySQL Workbench中,我得到了预期的结果
我是否错误地使用了JSON_CONTAINS
顺便说一句:与“7”相同的行为,顾名思义,ExecuteOnQuery不适用于返回数据的查询,如SELECT。它用于插入或更新之类的操作,并返回受更新影响的行数
我记不起MySQL中受影响的行在非更新查询中的确切语义,但使用类似SELECT COUNT*FROM的查询更清楚。。。然后ExecuteScalar获取计数,如果您只关心返回的行数