MySql 常用语句

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;

原文地址:https://www.cnblogs.com/cang12138/p/5220847.html