1、MySql查询某字段中是否含中文
使用 length 与 char_length 两个函数
length:是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符
char_length:不管汉字还是数字或者是字母都算是一个字符
对同一字段分别使用 length、char_length 计算长度,并进行比较长度相同则字段中无汉字,不相同则肯定有汉字
SELECT * FROM 表名 t WHERE LENGTH( REPLACE ( REPLACE (t.LOGIN_NAME, '-', ''), '+', '' )) = 3 * CHAR_LENGTH( REPLACE ( REPLACE (t.LOGIN_NAME, '-', ''), '+', '' ))
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
6、INSERT INTO复制表(将表2的数据复制到表1中)
//指定的列中插入数据,主键自动生成 INSERT INTO 表1(字段1,字段2) select 字段1,字段2 from 表2 where 条件 INSERT INTO 表1 (name,age) VALUES('苍','18') //(表结构完全一样)表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;