SQL中where条件如何判断某个字段有没有

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中where条件如何判断某个字段有没有相关的知识,希望对你有一定的参考价值。

select * from tem where px in case when '1' = #bm# then ('1','2')
else ('3')
end
会报then ('1','2')这里面缺失右括号,不知如何解决?如果这个then这儿不能写in里面多个参数的话
那又该如何在where后面判断传进来的bm的值然后给px附加条件呢?

case语句只能写在select 与 from 之间,你的写法不对,所以会报错

要附加的话就先case when后再用where筛选,你的写法实在看不出你想干嘛追问

可以写在这里,如果then后面的参数(\'1\',\'2\')换成(\'1\')这种单一的,就可以正确执行。

追答

哦,很少这样子写,今天也算学习了,
你改成这样试试
select * from tem where px in (case when \'1\' = #bm# then \'1,2\'
else \'3\'
end )

参考技术A where ((px in ('1','2'))and (bm=1))or (px ='3')

Mysql查找如何判断字段是不是包含某个字符串

SQL LIKE 操作符

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

SQL LIKE 操作符语法

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

数据表结构如下:

表中有如下9条记录

想把其中M开头的名字提取出来,可以使用SQL语句:

select * from nameinfo where name like 'M%'

提示:"%" 可用于定义通配符(模式中缺少的字母)。


提取name字段中包含某字符串的SQL如下:

select * from nameinfo where name like '%n%'

表示提取name字段中包含字母‘n’的记录

参考技术A 使用like
例如这样写
select * from db_type where name like ‘%字符串%’
like 'A%'第一个字母是A的字符串;
like '%A%'包含A的字符串;
not like 'A%'第一个字母不为A的字符串;
not like '%A%'不包含A的字符串;
另外:如果不包含的内容为%一类的特殊字符就需要使用[^%](不包含)了

以上是关于SQL中where条件如何判断某个字段有没有的主要内容,如果未能解决你的问题,请参考以下文章

数据库中如何判断某参数为空就不执行where条件

oracle SQL查询中,如何在where中用条件语句,判断不同情况,追加不同的And条件?

在SQL中,如何查询某一字段中最大值的数据

sql语句中如何一个字段对查询出的多个值添加判断条件

关于sql语句添加where条件问题,用java语句

sql中where 之后怎么加if条件判断