Mysql 实用语句记录
都是工作中遇到的需求,但不是常用sql,特此记录,方便以后使用:
1.将指定列的数据拼起来存到某一列
UPDATE table_name SET b_col_name=CONCAT(b_col_name,",",a_col_name);
解释:表示把b_col_name列内容、逗号、a_col_name列内容拼成新的字符串起来赋予b_col_name列
2.将存储内容为时间戳的列,转换成指定日期格式显示:
select FROM_UNIXTIME(col_name, '%Y-%m-%d') from table_name;
解释:输出结果为YYYY-MM-DD
可以使用的格式有:
格式 描述 %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 位 示例: FROM_UNIXTIME(col_name, '%Y-%m-%d') FROM_UNIXTIME(col_name, '%d %b %Y %T:%f')
3.之前做过爬虫,发现数据有重复的,使用sql去重:
SELECT COUNT(*) FROM table_name WHERE id IN (SELECT id FROM table_name GROUP BY col_name HAVING COUNT(1) >= 2)
4.将指定列转换为指定格式的日期
SELECT DATE_FORMAT(stoptime,'%m-%d') FROM `user_orders`