MySQL使用INSERT SELECT 批量插入数据

MySQL使用INSERT SELECT 批量插入数据
使用Insert Select语句插入记录时,必须遵循以下原则,用Select语句选择数据时,不能从被插入数据的表中选择行. 指定插入的表后所包含的字段数目必须与Select语句中返回的字段数目相同,指定插入的表后所包含的字段数据类型必须与Select语句中返回的字段数据类型相同或系统可以自动转换,代码如下: INSERT INTO ler_items( classid, title, address, zipcode ) SELECT classid, title, address, zipcode FROM le...

MySQL查询字符串中包含字符的记录

MySQL查询字符串中包含字符的记录
本文章来给各位同学介绍一下关于MySQL查询字符串中包含字符的记录一些常用方法,这里包括有REGEXP、FIND_IN_SET、Like有需要了解的朋友可进入参考. REGEXP,例1.查询字段中包含非英文的数据,代码如下: SELECT * FROM `m_user` WHERE `emp_no` REGEXP '[^ -~]' =1 列2.这样能把所有不含英文的都搞出来,代码如下: SELECT * FROM table WHERE name NOT REGEXP '[a-zA-Z0-9]+' 当然除了regexp之外还可以使用FIND...

mysql获取字符串长度函数(CHAR_LENGTH)

mysql获取字符串长度函数(CHAR_LENGTH)
length:是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符 CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符,一个多字节字符算作一个单字符。对于一个包含五个二字节字符集,LENGTH()返回值为 10,而CHAR_LENGTH()的返回值为5. CHARACTER_LENGTH(str) CHARACTER_LENGTH()是CHAR_LENGTH()的同义词. BIT_LENGTH(str) 返回2进制长度. 例如:可以查出用户名长度少于6个字符的用户列表. ...

mysql取随机数据慢优化方法

mysql取随机数据慢优化方法
前天因为工作需要我把从一个5W记录的数据库中随机抽取几条记录了,这里我是直接使用mysql rand by函数来直接,几千条记录没关系,但如果到了几万条感觉要几秒,这个就很慢了,下面小编与大家一起来看看mysql 取随机数据慢优化过程. MySQL很多时候需要获取随机数据,举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是: SELECT * FROM tablename ORDER BY RAND() LIMIT 1 但是,后来我查了一下MYSQL的...

MYSQL错误:Out of memory (Needed 1046596 bytes)

MYSQL错误:Out of memory (Needed 1046596 bytes)
Out of memory根据我们对英文了理解是超出的内存空间,也就是说你mysql占用了大量的内存了,或是没有配置好,下面小编来给各位同学介绍一下. MYSQL内存设置问题,可调整tmp_table_size大小解决,增大query_cache_limit 的值,还有max_heap_table_size和tmp_table_size的值. 因为我们的存储过程中用了好多的预处理语句,而且语句的结果都是非常大的,起初我的结果,代码如下: mysql> show variables&...

mysql获取自增id方法总结

mysql获取自增id方法总结
有时我们需要把刚保存的记录ID返回进行其它操作,下面小编来给大家整理了mysql获取自增id几种方法,希望此方法对各位同学有所帮助. 方法一,代码如下: SELECT TABLE_ROWS FROM information_schema.tables WHERE table_name='game' AND table_schema = DATABASE(); 在php中用法,php代码示例,代码如下: <?php    $sql="show table status where name ='members'"...

mysql(AUTO_INCREMENT)自增ID的起始值修改与设置

mysql(AUTO_INCREMENT)自增ID的起始值修改与设置
在mysql中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其它这样理解是错误的,下面我来介绍mysql自增ID的起始值修改与设置方法. 通常的设置自增字段的方法,创建表格时添加如下代码: create table table1(id int auto_increment primary key,...) 创建表格后添加:alter table table1 add id int auto_increment primary key 自增字段,一定要设置为primary key. 例,许多时候希望table中数据的i...

mysql获取随机数据问题总结

mysql获取随机数据问题总结
在mysql中获取随机数据方法很简单只要使用order by rand()即可了,但是如果你是百万级数据量,使用order by rand()获取随机数据你会等死去,下面我来介绍具体的解决办法. 1.order by rand() 数据多了极慢,随机性非常好,适合非常小数据量的情况,代码如下: SELECT * FROM table_name AS r1 JOIN (SELECT (ROUND(RAND() * (SELECT ABS(MAX(id)-MIN(id)-$limit) FROM table_name))+(SELECT MIN(id) from table_nam...

MYSQL 多表查询、删除、更新一些sql语句

MYSQL 多表查询、删除、更新一些sql语句
本文章来给各位同学介绍一下MYSQL 多表查询、删除、更新一些sql语,如果你有需要可进入参考一下. 例,代码如下: SELECT cat.`name` , class.`title` FROM `cat` , `class` WHERE cat.`id` = class.`cat` AND cat.`id` =2 LIMIT 0 , 30 DELETE cat, class FROM cat, class WHERE cat.`id`=class.`cat` AND cat.`id`=1 多表更新:在 MySQL 3.23 中,你可以使用 LIMIT # 来确保只有给定的记录行数目被更改,如果一...

Linux自动备份MySQL数据库脚本代码

Linux自动备份MySQL数据库脚本代码
下面这段Linux的Shell脚本用于每日自动备份MySQL数据库,可通过Linux的crontab每天定时执行,在脚本中可设置需要备份的数据库表清单,并且会将备份文件通过gzip压缩,需要注意的是,这段脚本仅适用数据一致性要求不高的环境,代码如下: #!/bin/bash     mysql_pwd="password"    mysql_dump="/usr/local/mysql/bin/mysqldump"    cur_year=$(date +"%...

Fedora16通过yum源安装MySQL

Fedora16通过yum源安装MySQL
最近站长的笔记本刚刚换上了Fedora 16,通过yum安装MySQL时遇到了些问题,搜索了几个国内的网站,几乎都不对路,最后还是在国外的网站上找到了正确的方法,下面分享一下. 1.首先,通过yum源安装MySQL. yum install mysql mysql-server. 2.启动MySQL,并设置MySQL随系统启动. systemctl start mysqld.service. systemctl enable mysqld.service. 需要注意的是上面所有操作应以root身份执行.

定时处理MySQL超时Locked进程脚本

定时处理MySQL超时Locked进程脚本
最近一段时间,我刚刚进入一家新公司,并接手了这里的一个站点,由于这个站点的架构设计不太合理,导致MySQL的压力始终很大,经常出现超时的Locked进程,于是编写了一段Linux的Shell脚本来定时kill掉这些进程. 脚本代码如下: #!/bin/bash     mysql_pwd="xxxxxx" #mysql的root密码     mysql_exec="/usr/local/mysql/bin/mysql"    tmp_dir="/tm...

Mysql5.5 InnoDB存储引擎设置

Mysql5.5 InnoDB存储引擎设置
环境为CentOS系统,1G内存,Mysql5.5.30,在/etc/my.cnf内添加如下代码: skip-external-locking    skip-name-resolve    max_connections = 1024    query_cache_size = 16M    sort_buffer_size = 1M    table_cache = 256    innodb_buffer_pool_size = ...

利用MySQL中InnoDB数据文件中的恢复数据

利用MySQL中InnoDB数据文件中的恢复数据
1.简述恢复原理 因为文档中较为详细的描述,这里只简单说明。所有InnoDB的数据都是索引的方式组织的,而且所有的数据都是存储在16KB的数据块中。恢复的过程分几步,分解所有数据文件为单个16KB大小的页面,根据每个页面的标记的数据起点开始尝试匹配,如果与给定表定义的size合适,认为匹配成功,则输出记录。 2.并行的恢复 数据恢复通常是争分夺秒的,PDRTI工具本身是一个基础工具,如果使用该工具做做串...

mysql使用utf8的sql文件出现乱码问题

mysql使用utf8的sql文件出现乱码问题
今天上了一个站,打开首页全是乱码,在浏览器上调了几次编码字符,都不对,问了下php开发才知道原来sql文件里使用的是utf8的编码,而我的mysql没有专门指定使用那种编码,为了不影响到其他站的运行,专门针对这一个站使用utf8编码吧. 系统:centos 5.x,mysql版本:mysql 5.5.x 1.先在mysql里创建utf8的数据库,代码如下: CREATE DATABASE `slogra` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 光是创建utf8...

windows下mysql每天定时备份数据库几种方法

windows下mysql每天定时备份数据库几种方法
在windows中备份mysql 数据库的方法有很多种,如有常用的WinRAR备份mysql、mysqldump备份成sql文件、xcopy 直接复制文件形式备份数据库,下面我来总结一下这些方法,并给出相关实例. 第一种:新建批处理文件 backup.dat,里面输入以下代码: net stop mysql    xcopy "C:/Program Files/MySQL/MySQL Server 5.0/data/piaoyi/*.*" D:/db_backup/%date:~0,10...

MySQL数值类型存储长度及范围

MySQL数值类型存储长度及范围
MySQL设置数值型列时,需要考虑到数值的范围,所以,数值类型就必然需要考虑,以下为MySQL数值类型的存储长度,当然存储长度基本决定着其值域范围,本文节选自MySQL官方网站,仅做汇总摘要整理. 一、TINYINT 1个字节存储,范围有符号-128-127,无符号0-255,还有一个类型是BOOL型,相当于TINYINT(1). 二、SMALLINT 2个字节存储,范围带符号的范围是-32768到32767,无符号的范围是0到65535. 三、MEDIUMINT 3个字节存储,范...

MySQL数据库在命令行下执行sql文件

MySQL数据库在命令行下执行sql文件
在命令模式下导入sql文件其实很简单了,我们可以用很多种办法,下面小编来给各位同学介绍一些常用的导入sql文件的方法. 例子,有importdata.sql文件,文件内容如下: SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";    CREATE TABLE `bbs` (      `id` int(11) NOT NULL auto_increment,      `uid`&nbs...

Cant Connect MySQL Server(localhost:3306)问题

Cant Connect MySQL Server(localhost:3306)问题
今天在发现使用ecshop时发现提示ECSHOP info: Cant Connect MySQL Server(localhost:3306)问题了,下面我来给各位同学总结具体的解决办法. 后来百度搜索了一下发现,说是微软 TCP/IP更新补丁 KB967723的问题,在增加删除程序中删除此补丁即可. 后还有找到一种办法就是修改注册表了,修改注册表,本方法是微软给出的修改注册表修复该Bug的的方法,原因是默认最大的临时 TCP 端口的数是 5000 适用于一节中包含的产...