第 2 页 - 孙立亚笔记 - 记录碰到的各种网站问题和解决方案

mysql 查询重复数据

1、查询表中重复数据,根据一个字段来判断提取

select * from sly_news 
where username in (select username from sly_news group by username having count(username) > 1)

2、查询表中的重复数据,不提取最小id值的数据, 主要用来删除重复值,删除替换最前面的select * 为delete 即可

select * from sly_news 
where username in (select username from sly_news group by username having count(username) > 1 
and id not in (select min(id) from sly_news group by username having count(username) > 1))

3、查询表中重复数据, 根据多个字段判断

select * from sly_news a where (a.username, a.userid) in (
select username, userid from sly_news group by username, userid having count(*) > 1 ) 

mysql 字段去除部分内容

REPLACE() 函数直接替换mysql数据库中某字段中的特定字符串

用法: REPLACE(字段, 要查找的字符串, 要替换的字符串)
update sly_news set litpic = REPLACE(litpic, '/Public', '') WHERE id = '';

实例: 把litpic字段中的 /Public 替换为 /uplods

update `sly_news` set `litpic` = REPLACE(`litpic`, '/Public', '/uploads') WHERE id = 76;

mysql 字段追加内容

CONCAT() 函数用于将多个字符串连接成一个字符串,是mysql重要的函数之一

用法: concat(str1,str2,...)

更新字段内容:
update table set remark = concat('新值',remark) where id = '';

实例: 在liptic的前面加上 /Uploads/

UPDATE `sly_news` SET litpic = CONCAT( '/Uploads/', litpic ) WHERE id >76;

读取字段并连接:
select CONCAT(title, hits, litpic) from table where id = '';

实例: 合并输出title, username, liptic

select CONCAT(`title`, `username`, `litpic`) as newtitle from `sly_news` where id = 76;

注意: 如果有一个选项为NULL ,则返回NULL


用指定间隔符连接字段:
CONCAT_WS(间隔符,str1,str2,…)
select CONCAT_WS(',', title, litpic) from table where id = '';

实例: 合并输出title , liptic ,并用逗号','分隔

select CONCAT_WS(',', `title`, `litpic`) from `sly_news` where id = 76;

注意: 如果分隔符是NULL,则返回NULL, 如果str有一个为NULL,则忽略此str请输入代码