sql中where case when前台传来的值 is null时就1=1否则查询到 字段A=传进来的值

如题这个该怎么写sql呢... 如题这个该怎么写sql呢 展开
 我来答
blademaster717
2018-07-02 · TA获得超过1456个赞
知道小有建树答主
回答量:882
采纳率:97%
帮助的人:357万
展开全部
--其实很简单,只是你把问题想复杂了,这个地方可以不用CASE WHEN 用OR就好了
where 前台传来的值 is null or 前台传来的值 is not null and 字段A=传进来的值

--或者一定要用 CASE WHEN
where (case when 前台传来的值 is null then 1 when 前台传来的值=字段A then 1 end) = 1
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Andy_Sun321
2018-07-02 · TA获得超过1376个赞
知道小有建树答主
回答量:811
采纳率:89%
帮助的人:714万
展开全部

用绑定查询, 假设前台传入的值为变量@queryValue, 条件这样写:

where (case 
       when @queryValue is null then 'Y' 
       when fieldA = @queryValue then 'Y' else 'N' end) = 'Y'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
练溪熊紫丝
2019-12-07 · TA获得超过1079个赞
知道小有建树答主
回答量:1284
采纳率:100%
帮助的人:5.8万
展开全部
从代码来看传值是没问题的,如果不放心可以echo
$_post['opt'];
查询语句写成$select2=mysql_query("select
*
from
kemu
where
·科目·=".$_post['opt']);
还有表字段最好不要用中文,
再看看别人怎么说的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式