MySQL
wyqwclsn
你永远不知道未来的你会有多强大
展开
-
mysql中in子查询效率优化
如下面sql语句,即便在表的数据量不大的时候,这样使用in子句的查询效率也很低select * from table1 where idin(select id from table2 where 条件)解决办法如下:select * from table2 where idin(select id from (select id from table2 where 条件) astb原创 2014-10-09 14:17:39 · 799 阅读 · 0 评论 -
MySQL升级后1728错误解决方案
错误 # 1728,Cannot load from mysql.proc. The table is probably corrupted造成原因:MySQL升级之后,没有对数据库进行升级。解决方案:mysql_upgrade -uroot -p原创 2015-03-03 21:41:51 · 1587 阅读 · 0 评论 -
linux下mysql修改root密码
方法一:用set password命令首先,登陆mysqlmysql -uroot -p然后执行set password命令set password for root@localhost = password('654321');上面例子,将root密码更改为654321方法二:使用mysqladmin格式为:mysqladmin -u用户名 -p旧密码 passw原创 2014-12-10 10:43:26 · 1702 阅读 · 0 评论 -
mysql实现top n查询
在MS SQL Server或Access中,若要查询前10条记录,使用top 10即可,但是mysql中不支持这个写法,用limit10即可以实现LIMIT可以实现top N查询,也可以实现M至N(某一段)的记录查询如:select * from tableorder by idlimit 5,10 即从第5条记录开始的10条记录。原创 2014-10-09 14:15:37 · 817 阅读 · 0 评论 -
mysql中group by 用法简介
sql语句group by 用法简介经常很多情况下,我们用来做统计的数据表都是无比杂乱的,凡是每一条数据都是无厘头的往里插入,但是我们在按照分类或者分组来显示统计数据的时候,这个时候就要用到神奇的groupby,如下:基本语法:SELECT "栏位1", SUM("栏位2") FROM "表格名" GROUP BY "栏位1"引用一下在google查到的一个简单的事例,St原创 2014-10-09 14:15:34 · 477 阅读 · 0 评论 -
mysql判断一个字符串是否包含某子串
使用locate(substr,str)函数,如果包含,返回>0的数,否则返回0 例子:判断site表中的url是否包含'http://'子串,如果不包含则拼接在url字符串开头update site set url =concat('http://',url)where locate('http://',url)=0 注意mysql中字符串的拼接不能使用加号+,用concat函数原创 2014-10-09 14:15:26 · 731 阅读 · 0 评论 -
mysql存储过程错误代码1307解决方案(转)
phpmyadmin2.11.92 --APMSEVR5.2.6写存储过程时提示error 1307 (HY000):Failed to create procedure...-----------------------------------------------------------------------将phpmyadmin中的mysql数据库中的表proc删除执行以下代转载 2014-10-09 14:14:01 · 685 阅读 · 0 评论 -
mysql中limit用法
select * from table limit m,n其中m是指记录开始的index,从0开始,表示第一条记录n是指从第m+1条开始,取n条。例:select * from tablename limit 2,4即取出第3条至第6条,4条记录select * from table limit n则默认表示从0开始,取出前n条数据原创 2014-10-09 14:18:53 · 518 阅读 · 0 评论 -
mysql去重查询
GROUP BY 语句可以实现某一列的去重查询。 如:SELECT a,b,c FROM t1 GROUP BYa,b,c按照a、b、c去重查询。DISTINCT 类似于 GROUP BY ,但是只能放在 SELECT 后面,被筛选的字段前面。如:SELECT DISTINCT a,b,c FROMt1这两个查询语句查询的结果是一样的原创 2014-10-09 14:17:27 · 1738 阅读 · 0 评论 -
mysql中查询字段为null或者不为null
mysql中查询字段为null或者不为null在mysql中,查询某字段为空时,不可用 = null,而是 is null,不为空则是 is not null select * from table where column isnull;select * from table where column isnot null;原创 2014-10-09 14:17:24 · 635 阅读 · 0 评论 -
mysql正则表达式REGEXP的使用
扩展正则表达式的一些字符是:· ‘.’匹配任何单个的字符。·字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。· “ *”匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的原创 2014-10-09 14:16:48 · 966 阅读 · 0 评论 -
mysql存储过程中异常处理
在MYSQL存储过程中,如果出错会导致程序中断,需要用DECLARE handler_type来处理错误。语法如下:DECLARE handler_type HANDLER FOR condition_value[,...]sp_statement handler_type: CONTINUE | EXIT condition_value: SQLSTATE [VALUE] sqlst原创 2014-10-09 14:16:44 · 1287 阅读 · 0 评论 -
mysql使用ROW_COUNT()返回插入、更新、删除操作影响行数
在Mysql中ROW_COUNT()返回前一个SQL进行UPDATE,DELETE,INSERT操作所影响的行数。注意在UPDATE中,如果替换前、后值是一样的,ROW_COUNT也会返回0。存储过程示例示例:begin insertinto test values('','第一条');ifROW_COUNT()>0 theninsertinto test values('',原创 2014-10-09 14:16:41 · 1844 阅读 · 0 评论 -
linux下mysql开启远程访问权限及防火墙开放3306端口
开启mysql的远程访问权限默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限。主流的有两种方法,改表法和授权法。相对而言,改表法比较容易一点,个人也是比较倾向于使用这种方法,因此,这里只贴出改表法1、登陆mysqlmysql -u root -p 2、修改mysql库的user表,将host项,从loc原创 2014-12-10 10:58:15 · 6243 阅读 · 0 评论