工作遇到的花里胡哨但是很实用的数据库相关的小技巧:
整体原创
一,sql语句获取某一字段的长度:
select length('某一字段');
二,行转列,列转行:
互转的两张表结构:
sql语句:
行转列:
SELECT
UserName,
MAX(CASE Subject WHEN '语文' THEN Score ELSE 0 END) AS '语文',
MAX(CASE Subject WHEN '数学' THEN Score ELSE 0 END) AS '数学',
MAX(CASE Subject WHEN '英语' THEN Score ELSE 0 END) AS '英语',
MAX(CASE Subject WHEN '生物' THEN Score ELSE 0 END) AS '生物'
FROM StudentScores
GROUP BY UserName
列转行:
select user_name, '语文' COURSE , CN_SCORE as SCORE from TEST_TB_GRADE2
union select user_name, '数学' COURSE, MATH_SCORE as SCORE from TEST_TB_GRADE2
union select user_name, '英语' COURSE, EN_SCORE as SCORE from TEST_TB_GRADE2
order by user_name,COURSE;
三,查看表中的字段以及字段类型
已查询结果显示
desc 表名;
show columns from 表名;
describe 表名;
以sql语句显示
show create table 表名;
还可以通过专门的管理表来查看
use information_schema
select * from columns where table_name=’表名’;
---------------------
作者:goatwen
来源:CSDN
原文:https://blog.csdn.net/god_wen/article/details/79271032
四,sql截取字符串函数
substring(str, pos); substring(str, pos, len)
从字符串的第 4 个字符位置开始取,直到结束。
mysql> select substring('sqlstudy', 4);
+------------------------------+
| substring('sqlstudy', 4) |
+------------------------------+
| study |
+------------------------------+
从字符串的第 4 个字符位置开始取,只取 2 个字符。
mysql> select substring('sqlstudy', 4, 2);
+---------------------------------+
| substring('sqlstudy.', 4, 2) |
+---------------------------------+
| st |
+---------------------------------+
来源以及更多介绍:https://www.cnblogs.com/wjm956/p/7724244.html
五,MySQL生成32位无"-"UUID
SELECT REPLACE(uuid(), '-', '');