mysql多条件替换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql多条件替换相关的知识,希望对你有一定的参考价值。

数据库表1内有两个字段.分别为a字段和B字段.当A字段里面有内容的时候b字段内容为1,当A字段里面没有内容的时候,B字段内容为0 ,请教大家帮帮忙.如何处理
SELECT A,(case when (A is null) or (A='') then 0 else 1 end) as B FROM t_test;
能查询,但不能执行

参考技术A SELECT A,(case when (A is null) or (A='') then 0 else 1 end) as B FROM t_test;

说明:
t_test是数据表名,B是个不存在的字段,只是一个输出结果,所以真实的字段只有字段A。

以上sql语句在mysql5.1上测试通过。
参考技术B update table1 set b=1 where a is not null or a<>'';

update table1 set b=0 where a is null or a'';

执行两遍比较好本回答被提问者采纳
参考技术C update table1 a set b=(select case when a is null then 0 else 1 end from table1 b where a.id=b.id);
这要求表1有个主键字段id;

MySQL· 条件

基本函数

lower(字段名)转小写
upper(字段名)转大写
length(字段名)数据的长度
substr(字段名,截取开头位置,结束位置)(含头含尾)截取
concat(字段名,拼接内容)拼接数据
replace(字段名,替换数据,替换内容)替换

round四舍五入
ceil向上取整
floor向下取整
max(字段名)求最大值
min(字段名)求最小值
sum(字段名)求和
avg(字段名)求平均

select now() --年月日 时分秒
select curdate() --年与日
select curtime() --时分秒
--year()年 month()月 day()日   

select now(),year(now()),month(now()),day(now()) from emp;

--hour()时  minute()分 second()秒

select now(),hour(now()),minute(now()),second(now()) from emp;

distinct去除重复的记录行
SELECT DISTINCT 字段名 FROM 表名;

过滤条件
where
and 相当于& 关系
or相当于|关系
between  and 两者之间
is null 为空
is not  null 不为空

模糊查询
like  %通配符、不限制个数
-一个代表一个字符

分页
limit一个参数N 展示N条数据
二个参数,S  N从S开始展示N条数据

排序
by  排序字段  asc 默认从小到大
desc  降序

count(字段名)统计该字段的所有数据

group by 字段名用于对查询的结果进行分组统计

having 子句类似where限制返回结果,where用在主句中,having用在分组中

 
 

以上是关于mysql多条件替换的主要内容,如果未能解决你的问题,请参考以下文章

mysql多条件动态查询

php+mysql多条件多值查询

mysql where条件使用了or会不会扫全表

Mysql查询详解(条件查询、子查询、模糊查询、连接查询。。。)

MySql怎么实现多条件查询呢?我有五种条件。关键是我想知道查询语句该怎么精简。

mysql 不同条件count ,多条件count()