mysql查询结果加自定义字段、查询结果修改字段名称、批量修改字段的值、查询一个字段的是否有多个值、时间与字符串之间相互转换 您所在的位置:网站首页 mysql字段名可以为中文吗 mysql查询结果加自定义字段、查询结果修改字段名称、批量修改字段的值、查询一个字段的是否有多个值、时间与字符串之间相互转换

mysql查询结果加自定义字段、查询结果修改字段名称、批量修改字段的值、查询一个字段的是否有多个值、时间与字符串之间相互转换

2023-11-13 19:04| 来源: 网络整理| 查看: 265

我的操作需求:

1、查询出的结果,加一个自定义的字段和数据?

SELECT  * , 100 as cc FROM tab;   # 增加cc字段 值是100

select realname, user_id, 'user' as type from ds_user;

2、查询出的结果,修改字段的名称? 3、查询出的结果,在查询出的数据的基础上修改数据的值? 4、mysql查询结果null值处理问题

select IFNULL(‘可能有空值的列’,‘为空值时默认的值(数据类型记得对上)’) from table 例;SELECT IFNULL(zt,0),dctm FROM tb_battery_old_table

5、查询一个字段的是否有多个值

可以写in(1,2,3) 或者分开查询union all 查询结果

select user_Email from ds_user where user_id in (1,3,24,56,93,98) and user_name!="";

6、以id分组,把name字段的值打印在一行,分号分隔 

关键字:group_concat              separator :分隔符         CONCAT():用于将多个字符串连接成一个字符串

select  id,group_concat(name  separator  ' ; ')   from table group by id 

7、一个字段有多个参数传递进来,应该如何写。

关键字:or  (or:或者)

select *  from table where name = "参数值1"   or    name = "参数值2"

8、一个列有多个值,查询字段中是否包含某个值

   关键字:find_in_set    (find:查找)

select *  from table where find_in_set('admin',username)

9、一个字段多个值,修改其中的一个

关键字:replace    (replace:修改  替换)

update table set username= replace(username,'原来的值’,‘新的值’)

10、一个字段中添加新的值,使用 “ ,” 隔开

关键字 :  concat  (concat:合并多个数组;合并多个字符串)

update table set username= concat(username,    ' ,要增加的值 '   )

11、删除指定的字段

关键字 : replace (replace : 替换  修改)

update table set username = replace(username,     '1,' ," "   )

参考资料:https://blog.csdn.net/Q927920568/article/details/84563529#commentBox  

12、需求:之前汉字转拼音时候发觉有个字母ü转换错了,应该是v才对,实际上ü也没错,但是在计算机拼音中ü是用v表示的,所以要把表中的ü全部转换为v

在这里插入图片描述

写出来了发现报错了。

You can’t specify target table for update in FROM clause 这个错误的意思是不能在同一个sql语句中,先select同一个表的某些值,然后再update这个表。 解决方法:给查询加别名,用中间表来实现不是对同一表作操作。

update bxkc_keyword_dict set pinyin=replace(pinyin,‘lu:’,‘lv’) where pinyin in(select * from(SELECT pinyin from bxkc_keyword_dict WHERE pinyin LIKE’%lu:%’) a)  

 

例如我查出来的结果:

| 字段1 | 字段2 | | 值1 | 值2 |

我想要在结果集中增加一个字段,这个字段是表中没有的,值是固定的,

例如:

| 字段1 | 字段2 | 新增字段 | | 值1 | 值2 | 值固定 |

例如:

| 字段1 | 更改后的字段2 | 新增字段 | | 值1 | 值2 | 值固定 |

解决措施

假设你的表名为tab1,只有字段为a,b,想在查询结果中新增字段c(固定值为100),可以这样写:

SELECT T.*,100 as c FROM tab1 T; 若100为字符串则是:

SELECT T.a,T.b,'100' as c FROM tab1 T; 举例:

在这里插入图片描述

 

 

时间与字符串之间相互转换 1.时间转字符串

DATE_FORMAT(日期,格式字符串)

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');

 

date_format(date,format):日期转字符串 select date_format('2008-08-08 08:08:08', '%Y%m%d%H%i%s');   

 time_format(time,format):时间转字符串 select time_format('08:08:08', '%H%i%s');    

2.字符串转时间

STR_TO_DATE(字符串,日志格式)

SELECT STR_TO_DATE('2019-01-20 16:01:45', '%Y-%m-%d %H:%i:%s');

字符串类型转换成日期/时间类型

str_to_date(str, format):

select str_to_date('18/08/08' , '%y/%m/%d'); -- 2018-08-08

select str_to_date('2018/08/08', '%Y/%m/%d'); -- 2018-08-08

select str_to_date('08:08:08', '%h:%i:%s'); -- 08:08:08

select str_to_date('2018.08.08 08:08:08', '%Y.%m.%d %h:%i:%s'); -- 2018-08-08 08:08:08

select str_to_date('2018-08-08 08:08:08', '%Y-%m-%d %H:%i:%s'); -- 2018-08-08 08:08:08

3.时间转时间戳

select unix_timestamp(now());

4.字符串转时间戳

select unix_timestamp('2019-01-20');  

5.时间戳转字符串

select from_unixtime(1451997924,'%Y-%d');

附日期格式如下:

格式    描述 %a    缩写星期名 %b    缩写月名 %c    月,数值 %D    带有英文前缀的月中的天 %d    月的天,数值(00-31) %e    月的天,数值(0-31) %f    微秒 %H    小时 (00-23) %h    小时 (01-12) %I    小时 (01-12) %i    分钟,数值(00-59) %j    年的天 (001-366) %k    小时 (0-23) %l    小时 (1-12) %M    月名 %m    月,数值(00-12) %p    AM 或 PM %r    时间,12-小时(hh:mm:ss AM 或 PM) %S    秒(00-59) %s    秒(00-59) %T    时间, 24-小时 (hh:mm:ss) %U    周 (00-53) 星期日是一周的第一天 %u    周 (00-53) 星期一是一周的第一天 %V    周 (01-53) 星期日是一周的第一天,与 %X 使用 %v    周 (01-53) 星期一是一周的第一天,与 %x 使用 %W    星期名 %w    周的天 (0=星期日, 6=星期六) %X    年,其中的星期日是周的第一天,4 位,与 %V 使用 %x    年,其中的星期一是周的第一天,4 位,与 %v 使用 %Y    年,4 位 %y    年,2 位

%M 月名字(January……December)   %W 星期名字(Sunday……Saturday)   %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   %Y 年, 数字, 4 位   %y 年, 数字, 2 位   %a 缩写的星期名字(Sun……Sat)   %d 月份中的天数, 数字(00……31)   %e 月份中的天数, 数字(0……31)   %m 月, 数字(01……12)   %c 月, 数字(1……12)   %b 缩写的月份名字(Jan……Dec)   %j 一年中的天数(001……366)   %H 小时(00……23)   %k 小时(0……23)   %h 小时(01……12)   %I 小时(01……12)   %l 小时(1……12)   %i 分钟, 数字(00……59)   %r 时间,12 小时(hh:mm:ss [AP]M)   %T 时间,24 小时(hh:mm:ss)   %S 秒(00……59)   %s 秒(00……59)   %p AM或PM   %w 一个星期中的天数(0=Sunday ……6=Saturday )   %U 星期(0……52), 这里星期天是星期的第一天   %u 星期(0……52), 这里星期一是星期的第一    ————————————————  



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有