mysql
朝着希望前进
这个作者很懒,什么都没留下…
展开
-
Caused by: java.sql.SQLException: Access denied for user 'root'@'host' (using password: YES)
测试环境完整错误:Caused by: java.sql.SQLException: Access denied for user 'root'@'host-192-168-107-61' (using password: YES)解决办法: SELECT * FROM mysql.user WHERE USER='root' GRANT ALL PRIVILEGES ON *.* TO 'roo原创 2017-01-10 20:51:44 · 17004 阅读 · 1 评论 -
mysql查询字段值为数字
我想查询字段值为数字的sql如下:select * from tj_item_result where tj_value REGEXP '^[0-9]'原创 2014-09-09 13:33:58 · 2669 阅读 · 0 评论 -
case when遇到空串转成0
需要注意:如果字段为varchar类型,when后的条件要加上引号SELECT (CASE 'marital_status' WHEN 0 THEN '已婚' WHEN 1 THEN '未婚' ELSE 'WEIZHI' END) AS marital_status FROM tj_archive WHERE id='D1407280006'用上面的语句,如果marital_status原创 2014-07-30 09:38:28 · 1983 阅读 · 0 评论 -
Operand should contain 1 column(s)
今天在sql测试的时候发现了这个错误:Operand should contain 1 column(s)。原因是in条件后面有多个字段,in后面只能有一个字段。原创 2014-08-21 11:39:55 · 94767 阅读 · 9 评论 -
MySQL导入文件报错并且乱码
实施从客户那里导出数据库给我,我在本机用sqlyog 导入时出现乱码并报错。报错内容为no selected database。但是我数据库确实选择了。最后问实施的哥们,他说他用sqlyog导出的时候也报错,所以它用Navicat for MySQL。我最后也下载了一个Navicat for MySQL并安装后就好了。花了我好几个小时去找错,因为之前几个库都是没问题的。下面是错误截图:原创 2014-05-07 10:30:21 · 1683 阅读 · 0 评论 -
mybatis向mysql插入含有逗号的值报错
mybatis向mysql插入形如“11,22,33”的时候报错。错误的原因是我用美元符号拼接的sql。正确做法是用# 有时间看看mybatis的$和#的区别。原创 2014-07-12 11:36:45 · 5846 阅读 · 0 评论 -
mybatis查询mysql的时间段
mapper文件的写法为:(模糊查询,查询时间段) and sc.com_name like CONCAT(CONCAT('%',#{com_name}),'%') <![CDATA[ and DATE_FORMAT(tcb.check_begin_date, '%Y-%m-%d') >= DATE_FORMAT(#{check原创 2014-07-11 11:18:28 · 4291 阅读 · 0 评论 -
mysql合并同一列的值
我有如下的查询条件显示:我希望最终显示的效果如图:通过sql怎么做到呢?将group_name前面(希望合成一列)加关键字group_concat.然后再sql语句最后group by id.group_concat能将同一列的值以逗号分隔开,拼成一个字符串。(mysql自带)第一个图的sql语句如下:SELECT tr.id ,tig.group_name FROM原创 2014-07-11 16:40:29 · 3944 阅读 · 2 评论 -
mysql两列合成一列
比如:有姓和名两列,我想查询的结果为一列。就需要concat关键字了。sql如下:select concat(firstName,lastName) from tj_user原创 2014-07-11 16:26:42 · 11610 阅读 · 1 评论 -
将数据库中的数字显示为文字
我们在数据库中常常会有这样的规定,1表示男,0表示女。但是在页面肯定不能显示0或1.就必须在显示之前将集合中关于性别的数字转化为男,女。在这里项目用了三种方式。第一种:在查询sql时就将字段转化过来。如下sql: CASE WHEN ta.sex ='1' THEN '男' WHEN ta.sex ='0' THEN '女' END AS se原创 2014-07-08 12:28:36 · 6551 阅读 · 1 评论 -
Error Code: 2006 - MySQL 鏈嶅姟鍣ㄥ凡绂荤嚎
将sql文件导入到mysql时候,就一直报这个错误。我试过网上各种方法都行不通。最后将下面一句执行了一下就可以了,而且没有重启mysql。 SET GLOBAL max_allowed_packet=67108864;原创 2014-06-03 10:29:18 · 2313 阅读 · 2 评论 -
mysql保存当前时间精确到秒
用mybatis在mysql中保存字段精确到秒需要两个步骤。1、现在mysql中将时间字段改为datetime 例如:alter table tablename add pay_date datetime comment '精确到秒的时间'2、在sql语句中直接用now(). 例如: update tj_record set is_customerHandove原创 2014-07-02 13:19:43 · 7810 阅读 · 0 评论 -
mysql字符串替换
我现在有这样一个需求:在数据中有一个字段的数据形如“0-300”现在需要将数据替换成“0~300”。 解决的sql如下:UPDATE tj_item_result SET reference_range=REPLACE(reference_range,'—','~') WHERE reference_range LIKE '%—%'执行完之后原创 2014-08-16 13:05:11 · 1787 阅读 · 0 评论 -
Can't open named pipe to host: . pipe: MySQL
今天遇到mysql连接odbc时报如下错误:Can't open named pipe to host: . pipe: MySQL错误截图如下:按照网上说的方法包括mysql的官方说法都没有奏效,最终的解决方案是:把以前的odbc连接删除,然后重新建一个同名的即可。问题解决。产生这个问题的原因是:同事新装了一个odbc驱动。附上一篇协助我解决问题的博客地址:http://bl原创 2014-08-18 18:45:23 · 5564 阅读 · 0 评论 -
mysql将查询到的数据导出为excel
现在需要将mysql库中的一些数据导出为excel,然后打印。其实实现上面说的需求很简单,只要你把sql语句写出来,然后导出为excel即可具体实现流程如下:1、写出sql语句,查询出结果。2、在查询的结果上点击右键,选择“导出所有表数据记录/结果为...”如图所示:选择“导出所有表数据记录/结果为...”之后出现如下图所示点击导出即可。==========原创 2014-09-03 11:34:16 · 2701 阅读 · 0 评论 -
mysql date_time字段相加
今天测试环境数据时间过期,导致测试同学查询今后几天数据都是空的,由于测试数据五十万左右,一个个数据修改太坑爹了,而且一些功能依赖多的数据才可以。重新跑定时任务太慢了,就想着用sql先操作一下,将对应的日期加8天。比如2017-01-01变为2017-01-09, 2017-01-02变为2017-01-10 mysql需要修改的两个字段类型depart_time datetimedepart_原创 2017-01-09 11:22:42 · 2744 阅读 · 1 评论 -
ubuntu14.04安装mysql-workbench
为了在ubuntu14.04上安装画ER图的软件,在网上搜了一下,很少有人推荐在windows上用的powerdesigner,推荐说用mysql-workbench就可以。所以就安装了mysql-workbench用来画ER图,安装过程超级简单。具体如下:sudo apt-get updatesudo apt-get install mysql-workbench执行完以上命令,mysql-wo原创 2016-09-21 16:38:20 · 4898 阅读 · 1 评论 -
when using LOCK TABLES
今天想从线上导个表数据到测试环境,结果碰了when using LOCK TABLES这个错误。解决办法是:在执行语句后面加上 --skip-lock-tables。具体导出代码如下:(ip,用户名,密码,数据库密码都已模糊过)[evan@evan ~]$ mysqldump -h110.10.12.246 -upop -p123456 -P 4020 pop_re > pop.sql;War原创 2016-07-07 18:34:14 · 6510 阅读 · 0 评论 -
mysql5.5.23 CURRENT_TIMESTAMP问题
今天新建一个表,里面两个字段:创建时间和更新时间,两个默认值都是当前时间,一执行sql就报错。ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause我在其它的项目里面都是这样用原创 2016-07-13 17:26:23 · 3102 阅读 · 0 评论 -
mysql5.6更改数据库编码
今天在测试环境上出现了乱码,但是同样的程序在正式环境(阿里云)没有乱码。查看了一下mysql编码发现,测试环境的编码不全是utf8。所以需要将mysql的编码都设置成utf8。正式环境和测试环境的mysql编码截图如下: 解决方案如下: 1、将mysql的安装目录的my-default.ini复制一份,重命名为my.ini(因为mysql5.6没有my.ini文件) 2、将my.i原创 2015-08-17 14:03:51 · 1260 阅读 · 0 评论 -
mysql字段值自动更新时间
在生产环境中可能会出现,项目已经上线,但是更新时间的字段没有赋值,也就是说这条数据每次更新时,更新的时间依旧是null。为了解决这个问题,一般是将程序更新数据时,把更新时间给更新了。但是上线后更改程序需要重新升级,挺麻烦。现在可以通过修改更新时间的字段,来保证每次更新数据时,数据的更新时间自动更新。 在一个已经建好的表执行如下sql即可完成更新时间自动更新: ALTER TABLE check原创 2015-09-23 08:58:07 · 3941 阅读 · 0 评论 -
mysql查询表重复数据的sql
mysql查询表中重复数据,比如现在需要查询出表中条码重复的记录,sql如下:SELECT GUIDE_BARCODE FROM checker_barcode GROUP BY GUIDE_BARCODE HAVING COUNT(GUIDE_BARCODE) >1原创 2015-09-21 21:54:24 · 2002 阅读 · 0 评论 -
mysql通过DATE_FORMAT将错误数据恢复
由于现在新开发项目,同事造数据的时候,将时间类型格式造成“20150708”,但是实际希望的数据格式是:”2015-07-08” 。 数据库使用的是mysql,时间字段类型是varchar(10) ,由于几百条测试数据,一个个修改肯定不现实,实现思路,大家提供了三种,最终用了date_format简单实现。 实现的sql如下:UPDATE organ_book_resource o原创 2015-07-08 21:54:39 · 1231 阅读 · 0 评论 -
2003 -can't connect to mysql server on ‘localhost'(10061)
今天用navicat连接mysql时候出现2003 -can't connect to mysql server on ‘localhost'(10061)错误。错误截图如下:产生原因是:mysql服务未启动解决办法是:通过命令services.msc将mysql服务启动即可。原创 2014-11-27 10:47:52 · 2042 阅读 · 0 评论 -
mysql导入sql文件过大或连接超时的解决办法
前段时间出差在现场开发的时候,导入数据库老是出问题。最后发现了一个神奇sql语句交给实施,只要导入出错就把如下语句执行就可以了。至今屡试不爽。set global max_allowed_packet=100 000 000; set global net_buffer_length=100000; SET GLOBAL interactive_timeout=28800 000;原创 2014-10-17 15:05:05 · 3258 阅读 · 0 评论 -
mysql通过字段注释查找字段名称
有时候表的字段太多,只是大致记得表的注释,想通过字段注释查找字段名称,可以用如下语句:SELECT COLUMN_NAME,column_comment FROM INFORMATION_SCHEMA.Columns WHERE table_name='tj_record' AND table_schema='tianjin_20140811' AND column_comment LIKE原创 2014-11-13 10:46:10 · 2374 阅读 · 0 评论 -
mysql删除字段语句
#删除字段ALTER TABLE evan DROP COLUMN age#添加字段ALTER TABLE evan ADD COLUMN age2 VARCHAR(20) COMMENT '年龄'#修改字段注释ALTER TABLE evan MODIFY COLUMN age2 VARCHAR(20) COMMENT '年龄2'#修改字段名字ALTER TABLE evan原创 2014-05-21 16:15:05 · 2134 阅读 · 0 评论 -
MySQL desc作用
MySQL中默认排序是acs(可省略):从小到大 desc :从大到小,也叫倒序排列。原创 2014-05-14 17:37:09 · 7084 阅读 · 0 评论 -
update更新两个字段
update更新两个字段时的sql语句: update tj_record set is_recycle_reprint_guide='1' , recycle__guide_date=now() where id = #{record_id}科室如果我将字段的“,”写成了and也不报错。但是更新不了。如图:切记,更新多个字段时是以逗号分隔。原创 2014-05-17 18:03:33 · 2549 阅读 · 0 评论 -
hibernate执行更新操作的时候,没有主键会报错
我之前测试过sql语句执行更新操作,与是否有主键,和主键是否为空没有关系。但是hibernate执行更新的时候没有主键就报错。 保存的方法如下:public void update(T entity) { this.getHibernateTemplate().merge(entity); } 报错如下:org.hibernate.exception.Co原创 2014-02-27 18:43:23 · 2573 阅读 · 1 评论 -
mysql通过命令导入sql文件的方法
在导入sql文件之前,打开sql文件看一下数据库的名称是什么,然后创建一个同名称的数据库。接着用命令source 即可。 例如:我的sql文件在E盘下,名字为a.sql那么我导入之前把a.sql打开,会看到这样的一段话。图如:画红线的地方就是数据库的名字。你需要的命令就是先创建quote数据库,然后选中该数据库导入文件。具体命令为:create database原创 2014-02-16 17:09:30 · 2048 阅读 · 4 评论 -
mysql更新语句执行的时候,如果没有数据不会报错
mysql更新语句执行的时候,如果没有数据不会报错。下面是我做的实验。首先执行建表语句:CREATE TABLE test (id VARCHAR(20),NAME VARCHAR(20))再执行更新语句:UPDATE test SET NAME = '1' WHERE id = '1'由于刚建立的表,里面什么数据都没有,但是执行完更新语句后没有报错。出现了下图所示的界面:也就原创 2014-02-27 17:14:34 · 4955 阅读 · 0 评论 -
mysql以及oracle数据库的驱动和连接
mysql :驱动: com.mysql.jdbc.Driver连接:jdbc:mysql://localhost:3306/evan oracle:驱动:oracle.jdbc.driver.OracleDriver连接:jdbc:oracle:thin:@localhost:1521:orcl 另外mysql以及oracle的驱动在我资源里面都有的。重要是免积分原创 2013-10-14 10:11:45 · 1483 阅读 · 0 评论 -
数据库同一张表字段横向与纵向相加
数据库中同一张表int类型同一行字段相加select IFNULL(c1,0) +IFNULL(c2,0) from table where Id = 1 (IFNULL(C1,0)中的0表示如果c1为null则将c1设置为0.之前没有加报错了)数据库中同一张表int类型同一列字段相加SELECT sum( jine ) FROM `dingdan` WHERE `原创 2014-01-04 18:54:50 · 3541 阅读 · 0 评论 -
mysql创建单个和联合索引
首先创建一个表:create table t1 (id int primary key,username varchar(20),password varchar(20));创建单个索引的语法:create index 索引名 on 表名(字段名) 索引名一般是:表名_字段名 给id创建索引:create index t1_id on t1(id);创建联合索引的语法原创 2014-02-25 18:26:14 · 2644 阅读 · 1 评论 -
mysql 出现2003- cant connect to MYSQL server on localhost 的解决办法
mysql出现下面的错误:解决办法是:win+R 输入:services.msc将mysql的服务启动后问题解决。如图:原创 2014-02-24 17:59:43 · 11223 阅读 · 2 评论 -
工作中用到的mysql命令
通过cmd连接mysql:mysql -uroot -p123456 (需要配置path环境变量:C:\Program Files\MySQL\MySQL Server 5.6\bin ) 创建数据库并使用utf8编码: create database utf8_test default character set utf8; 查看已有的数据库: show data原创 2014-02-08 12:04:40 · 1509 阅读 · 0 评论 -
通过cmd命令连接mysql
通过cmd的命令窗口连接mysql,只需要在命令行中输入 mysql -uroot -p123456 .它会出现这样的提示:“mysql不是内部或外部命令”。解决办法是在环境变量的path路径下加入 C:\Program Files\MySQL\MySQL Server 5.6\bin。如下图:将mysql配置到环境变量后,在cmd的命令窗口输入 “mysql -uroot -p原创 2014-02-08 11:30:21 · 2165 阅读 · 0 评论 -
怎么复制cmd的内容
今天想把cmd中的出错信息复制下来,但是标记完后,按ctrl+c没有效果。最后才知道标记完成后,按键盘的enter键才能完成复制。具体做法:1、在cmd窗口内的任意位置,单击鼠标右键,选择“标记”;2、此刻直接左键拖动鼠标即可实现内容的选定了;3、选择完毕,直接按键盘的回车键,即可完成复制操作了!原创 2014-02-08 11:50:40 · 4145 阅读 · 0 评论 -
mysql是区分表名的大小写
我以前做了测试,在mysql中表名的大小写是不区分的,但是昨天项目上线的时候发现了一个问题。在我这边(window)表名称不区分大小写(也就是大写的A和小写的a表是不能同时存在一个数据库里面的),但是到了linux就区分了。导致我项目上线就一直报表找不到。 在将数据库中的表导出的时候所有的表名称都是小写,而hibernate的配置文件中表名是大写。所以导致在windows中可以正常运行,在l原创 2014-01-16 18:08:43 · 1464 阅读 · 0 评论