mysql查询结果加自定义字段、查询结果修改字段名称、批量修改字段的值、查询一个字段的是否有多个值、时间与字符串之间相互转换 |
您所在的位置:网站首页 › 文件名称批量添加字段的方法 › mysql查询结果加自定义字段、查询结果修改字段名称、批量修改字段的值、查询一个字段的是否有多个值、时间与字符串之间相互转换 |
我的操作需求: 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 办公设备维修网 版权所有 豫ICP备15022753号-3 |