mysql数据库中用数据库字段作为变量进行LIKE模糊查询!请看详细补充!

2025-03-26 02:21:37
推荐回答(2个)
回答1:

select t.gmt_Id_i ,t.gmt_Name_v,
( select count(*) from tb_mgoods where goods_MoreType_v like '%/[' + t.gmt_Id_i + '/]%' escape '/') as counts
from tb_mgoodsmoretype t where t.gmt_Id_i in(10,121)

注意: like '%某字符串%' 等效于 like '%'+'某字符串'+'%',由于gmt_Id_i是字段名称,故不能使用 like '%gmt_Id_i%' 必须使用 like '%' + gmt_Id_i + '%' ,另外由于你的goods_MoreType_v字段含有[],必须使用转义符,把[]转为字符串[],否则,sql会理解[]为通配符使用,还有 sql中转义符\ 解释为把该字符后的第一个字母转成普通的字符。

回答2:

select gmt_Id_i ,gmt_Name_v,
(select count(*) from tb_mgoods where goods_MoreType_v=tb_mgoodsmoretype.gmt_Id_i) as counts
from tb_mgoodsmoretype where gmt_Id_i in(10,121)