MySql 常用语句
1、MySql查询某字段中是否含中文
使用 length 与 char_length 两个函数
length:是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符
char_length:不管汉字还是数字或者是字母都算是一个字符
对同一字段分别使用 length、char_length 计算长度,并进行比较长度相同则字段中无汉字,不相同则肯定有汉字
SELECT * FROM 表名 t WHERE LENGTH( REPLACE ( REPLACE (字段, '-', ''), '+', '' )) = 3 * CHAR_LENGTH( REPLACE ( REPLACE (字段, '-', ''), '+', '' ))
2、MySql查询某字段中是否包含某个名词
实例:存储样式:河北,浙江,北京,吉林
concat:用于将两个字符串连接起来,形成一个单一的字符串。
SELECT * from 表名 where concat(',',字段,',') like '%,浙江,%'
3、联表更新
UPDATE friends INNER JOIN users ON friends.friendid = users.userid SET friends.friendname = users.username
where users.id = 1 and friends.name = '张三'
4、乱序查询
SELECT * FROM 表名 ORDER BY RAND()
5、查询重复数据
//去重并统计每个姓名个数 SELECT NAME,count(1) from 表名 group by NAME HAVING count(1) >1 //distinct单纯去重 SELECT distinct NAME from 表名
6、INSERT INTO复制表(将表2的数据复制到表1中)
//指定的列中插入数据,主键自动生成 INSERT INTO 表1(字段1,字段2) select 字段1,字段2 from 表2 where 条件
//(表结构完全一样)表2整条记录插入到表1,主键也插入(需要注意主键是否冲突)
INSERT INTO 表1 select * from 表2 where 条件
7、mol 函数判断奇数偶数
SELECT * from 表名 where mod(id,2) = 0;//偶数 SELECT * from 表名 where mod(id,2) = 1;//奇数
8、MySql行转列
//图一 SELECT question_id,answer_id,COUNT(1) from 表名 GROUP BY question_id,answer_id; //图二 SELECT question_id, SUM(CASE answer_id WHEN 'A' THEN 1 ELSE 0 END )A, SUM(CASE answer_id WHEN 'B' THEN 1 ELSE 0 END )B, SUM(CASE answer_id WHEN 'C' THEN 1 ELSE 0 END )C, SUM(CASE answer_id WHEN 'D' THEN 1 ELSE 0 END )D from 表名 GROUP BY question_id;
9、DATEDIFF() 函数返回两个日期之间的天数。
SELECT DATEDIFF('2016-01-03','2016-01-02') AS DiffDate //返回1
10、ADDDATE
SELECT ADDDATE(now(),INTERVAL 5 MINUTE)//当前时间增加5分钟