一、查询技巧
- 1、在学生表中,查询重名的学生及记录数,则SQL如下
select name, count(*) as count
from fa_student
group by name
having count > 1
- 2、排序函数field(),
是将查询的结果集按照指定顺序排序。
格式:FIELD(str,str1,str2,str3,…)
解释:str是字段名,str1、str2、str3都是该字段的具体值。
详细解析:字段str按照字符串str1,str2,str3的顺序返回查询到的结果集。如果表中str字段值不存在于str1,str2,str3中的记录,则放在结果集最前面返回,倒序,正反之。
举例:数据表order中有字段status,按照status自定义排序方式进行排序
SELECT id, status from mall_local_order order by field(status, 0,5,4,1,2)
- 3、字符串拼接函数concat(str1,str2,str3,…)
- 4、借助子查询得出的结果进行相加或相减等操作
SELECT
id,nickname,
(select count(*) from mall_user a1 where FIND_IN_SET(a.id,a1.path) and del_flag = 0) as team_count,
(select count(*) from mall_user a1 where a1.spread_uid = a.id and del_flag = 0) as spread_count,
(select team_count - spread_count) as spread_team_count
FROM
mall_user a
二、设置技巧
ALTER TABLE table_name AUTO_INCREMENT = 10000
- 2、如果某表的字符集是utf8,或者表中字段是utf8时,通过下面sql可以将该表及表中varchar字段改为utf8mb4,方便存储表情符号
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci