我正在尝试确定一个简单的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中,我得到了预期的结果。
我是否错误地使用了JSON_CONTAINS?
BTW:与“7”相同的行为
答案 0 :(得分:1)
ExecuteNonQuery
不适用于返回SELECT
等数据的查询。它适用于INSERT
或UPDATE
之类的内容,它会返回受更新影响的行数。
我不记得MySQL中针对非更新查询的“受影响的行”的确切语义,但更清楚的是使用SELECT COUNT(*) FROM ...
之类的查询然后ExecuteScalar
来获取计数,如果返回的行数就是你所关心的。