分类 MySql 下的文章 - 孙立亚笔记

MySql

phpmyadmin导入超大sql方法

一、 修改配置文件
在phpmyadmin根目录,查找config.inc.php, 如果没有,就查找config.sample.inc.php,复制并重命名为 config.inc.php。 编辑config.inc.php, 如下:

$cfg['UploadDir'] = 'upload';
$cfg['SaveDir'] = 'save';

二、创建所需目录、上传sql文件
在phpmyadmin根目录下创建两个目录: upload 和 save 。 把要导入的sql上传到新建的upload目录内。

三、重新打开phpmyadmin链接并导入
重新打开phpmyadmin链接 , 这时导入会有一个从 网站服务器选择 的选项, 选择服务器中的upload里的上传的文件,点执行,1000M的SQL轻松导入。

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请输入代码