多个参数模糊查询的SQL怎么写?

以下应该怎么改写成模糊查询呢,SQL如下:

    SELECT  *    FROM    [dbo].[WZ_DETAIL]                    

    where

        c_name like '%xxxx%'

      and  wz_name like '%xxxx%'

       and  descshort like '%xxxx%'

        and desclong like '%xxxx%'

FineReport hasn_z 发布于 2025-8-5 16:28
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
华莉星宸Lv7专家互助
发布于2025-8-5 16:32

SELECT  *    FROM    
[dbo].[WZ_DETAIL]                    
    where 1=1
 ${if(len(参数1)==0,""," and c_name  like '%"+参数1+"%'")}
 ${if(len(参数2)==0,""," and wz_name  like '%"+参数2+"%'")}
  ${if(len(参数3)==0,""," and descshort like '%"+参数3+"%'")}
 ${if(len(参数4)==0,""," and desclong like '%"+参数4+"%'")}

最佳回答
0
用户k6280494Lv6专家互助
发布于2025-8-5 16:29

   SELECT  *    FROM    [dbo].[WZ_DETAIL]                    

    where

        c_name like '%${cs}%'

      and  wz_name like '%${cs1}%'

       and  descshort like '%${cs2}%'

        and desclong like '%${cs3}%'

  • hasn_z hasn_z(提问者) 这样写不行,除非四个参数不为空,否则会报错
    2025-08-05 16:31 
最佳回答
0
snrtuemcLv8专家互助
发布于2025-8-5 16:29(编辑于 2025-8-5 16:34)

SELECT  *    FROM    [dbo].[WZ_DETAIL]                    

    where

        c_name like '%${xxxx1}%'

      and  wz_name like '%${xxxx2}%'

       and  descshort like '%${xxxx3}%'

        and desclong like '%${xxxx4}%'

==========

SELECT  *    FROM    [dbo].[WZ_DETAIL]                    

    where 1=1

       ${if(len(xxxx1)=0,""," and c_name like '%"+xxxx1+"%'")}

       ${if(len(xxxx2)=0,""," and  wz_name like '%"+xxxx2+"%'")}

        ${if(len(xxxx3)=0,""," and  descshort like '%"+xxxx3+"%'")}

         ${if(len(xxxx4)=0,""," anddesclong like '%"+xxxx4+"%'")}

  • hasn_z hasn_z(提问者) 这样写不行,除非四个参数不为空,否则会报错
    2025-08-05 16:31 
  • snrtuemc snrtuemc 回复 hasn_z(提问者) 看修改答案
    2025-08-05 16:34 
最佳回答
0
ScyalcireLv7高级互助
发布于2025-8-5 16:33(编辑于 2025-8-5 16:34)

SELECT * FROM [dbo].[WZ_DETAIL]

WHERE (c_name LIKE '%${param}%' OR '${param}' IS NULL)

  AND (wz_name LIKE '%${param}%' OR '${param}' IS NULL)

------------

SELECT * FROM [dbo].[WZ_DETAIL]

WHERE 1=1

${if(len(param) == 0,"","AND c_name LIKE '%" + param + "%'")}

${if(len(param) == 0,"","AND wz_name LIKE '%" + param + "%'")}

${if(len(param) == 0,"","AND descshort LIKE '%" + param + "%'")}

${if(len(param) == 0,"","AND desclong LIKE '%" + param + "%'")}

  • 5关注人数
  • 47浏览人数
  • 最后回答于:2025-8-5 16:34
    请选择关闭问题的原因
    确定 取消
    返回顶部