mysql存储过程,查询多个重复的数据数据出现次数

update B set B = (select count() from A group byhaving A count() > 1 ), C = (select count() from A group byhaving A count() = 1 ) where B.A = A.A and C.A = A.A
问题出在 SQL 语句上。

MySQL:在存储过程中传递参数,使用模糊查询怎么做?

说实话,你的写法还挺标准的,确实可以让查询不清楚。
我刚接手项目的时候也用过这个。
我记得当我查找名称中带有“冰箱”的产品时,ps.setString(1 ,“%refrigerator%”),结果就出来了。

有趣的是,数据库中这个百分号占位符方法的内部实现其实相当复杂。
例如,在 MySQL 中,它会自动将您的查询转换为 LIKE '%refrigerator%',并且全表扫描的可能性很高。
所以如果你的数据量特别大,你可能需要添加索引。
当时我在电子商务系统工作。
产品表中有几千万条数据。
我直接模糊查找数据,没有添加索引。
我立马把服务器杀了……幸好后来改成了全文索引。

不过话虽如此,写作是正确的。
然而,这是一个小问题。
如果您使用 item 表名称,您实际上应该验证表名称是否真的是 item。
之前有个项目,表名改了,只是我没注意到,所以查了半天其他表数据,当时脸都绿了。

我个人没有在这方面运行过 PostgreSQL,但是在 MySQL 中,在 % 之前和之后添加空格将类似于 '%refrigerator %',这将导致搜索时出现额外的空格。
所以,如果业务场景有严格要求的话,可能需要注意。
我记得数据是圆形的。
我遇到过以前没有找到的空值,所以我只是添加了 COALESCE(str, '') 来解决这个问题。

总之,核心思想是正确的,但具体细节还需要更多关注。

MySQL怎么写存储过程查询某个表的某一条记录,并把这条记录的所有列名对应的值以json格式返回呢?

这是一个陷阱,不要使用JSON返回,不要增加数据库的负载。