单张表数据判断重复数据,使用group by 进行分组查询组合 ,因为WHERE 关键字无法与合计函数一起使用因而使用HAVING 条件查询。
select a.* from tb a,(select 名字,版本 from tb group by 名字,版本 having count(1)>1) b where a.名字=b.名字 and a.版本=b.版本
阅读全文
阅读全文
MSSQL和MySQL中,数据表两列字段值互换的问题。
由于导入数据的时候把两列数据交换错误导入,为了不在重新导入决定有修改数据库,在一张测试表中测试直接使用
update table1 set field_1 = field_2, field_2 = field_1
发现没有成功只是覆盖另一列记录,查了一下相关资料处理如下:
MSSQL可以直接使用上述方法。
但是MySQL中使用如下:
update table1 a, table1 b set a.field_1 = b.field_2, a.field_2 = b.field_1 where a.id = b.id
阅读全文
阅读全文
Java的本地化命令执行连接MySql
Java执行本地命令需要用的类Runtime的exec()方法。而且exec()我在使用的时候发现执行命令的时候是异步的,比如在执行sql文件导入的时候,接着执行查询会发现找不到表,那是因为sql文件还没执行完程序就运行查询的操作了,我是Groovy中执行的Java代码。
代码如下:
[code lang="Java"]
def initData = {
def msg = [:]
def properties = findProperties()
println properties.toString()
def paths = request.getServletContext().getRealPath("/db/dvchat.sql")
def sqlList = []
sqlList.add(&qu.....
阅读全文
阅读全文
关于Groovy操作mysql数据库
近段项目需要Jdbc直接连接mysql数据库,由于项目使用的是Groovy Grails与是查了一下文档,发现Groovy相对于Java连接比较容易实现,由于Groovy直接实现了Sql类groovy.sql.Sql 。
实现如下:
[code lang="Groovy"]
import groovy.sql.Sql
class GrovvyJdbc{
def db() {
def db_url="jdbc:mysql://localhost:3306/test" //数据库URL
def username="root" //用户名
def password="root" //密码
def driverClass="com.mysql.jdbc.Driver" //.....
阅读全文
阅读全文
Mysql存储过程内中文乱码,如何处理
问题如下:在mysql自带的test数据库中创建如下测试表t3:
[code lang="SQL"]
CREATE TABLE `t3` (
`name` varchar(33) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
[/code]
name字段的字符集也是utf8,再创建下述存储过程addname:
[code lang="SQL"]
CREATE DEFINER=`root`@`%` PROCEDURE `addname`()
BEGIN
#Routine body goes here...
insert into t3 VALUES ('测试');
END
[/code]
通过JDBC数据源连接该数据库,将链接的字符集设为gb2312,通过应用程序调用此数据源来访问mysql,调用存.....
阅读全文
阅读全文