Tag: MySQL

获取与一列MAX值相对应的其他列?

好的,这是我的查询: SELECT video_category, video_url, video_date, video_title, short_description, MAX(video_id) FROM videos GROUP BY video_category 当它提取数据时,我得到了video_id的正确的行,但是它为其他的类别提取了每个类别的第一行。 所以,当我得到最大的结果为类别1的video_id,我得到最大ID,但表中的第一行的url,date,标题和说明。 我怎么能拉到与最大ID结果对应的其他列? 编辑:修正。 SELECT * FROM videos WHERE video_id IN ( SELECT DISTINCT MAX(video_id) FROM videos GROUP BY video_category ) ORDER BY video_category ASC

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:连接closures后不允许任何操作

我build立了一个应用程序并部署在本地……并且工作正常。 我将它部署在远程服务器上,并开始获取主题行中提到的exception。 这不是因为有任何防火墙问题。 我改变了我的hibernate.xml连接通过我的IP地址,而不是本地主机,现在我在我的本地部署的应用程序相同的超时。 当我使应用程序运行超过一天时,出现此错误。 自己进行交易或闭幕式后,我没有执行任何操作。 我在hibernate.cfg.xml使用以下属性 <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://myremotehost:3306/akp</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <property name="hibernate.show_sql">false</property> <property name="hibernate.current_session_context_class">thread</property> <property name="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</property> 引起:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:连接closures后,不允许任何操作。连接被驱动程序隐式closures。 详细: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed by the driver. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) at com.mysql.jdbc.Util.getInstance(Util.java:384) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015) […]

MySQL VARCHAR(255)UTF8对于密钥来说太长,但最大长度是1000字节

我知道有很多这方面的问题,但我认为我的math是正确的。 MySQL为每个UTF8字符保留3个字节。 MyISAM允许长度为1000字节的密钥。 我的UTF8 VARCHAR(255) 应该是255 * 3 = 765个字节 除非UNQUE需要额外的200 +字节,否则为什么这不起作用? mysql> ALTER TABLE entry ADD UNIQUE INDEX (name(255)); ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes 有什么我可以做的呢? 编辑: 事实certificate,限制是250.看起来字符数为4个字节的唯一索引,但我不知道为什么。 编辑2: 感谢Vladislav Vaintroub,charset确实是utf8mb4。 解决了这个谜。 我没有看到这个变化的任何文件。 我猜它通过隐式截断字段来构build非唯一索引,这对于唯一索引是不可接受的,所以它拒绝。 如果您重新input您的评论作为答案,我会很乐意接受。 解决scheme:指定utf8,而不是utf8mb4(MySQLpipe理员不允许这样做,所以手动创build表)

如何在Node.js中模拟MySQL(没有ORM)?

我使用felixge的node-mysql客户端来使用Node.js。 我没有使用ORM。 我正在testing誓言,并希望能够嘲笑我的数据库,可能使用Sinon。 由于我本身并没有真正的DAL(除了node-mysql ),我不太确定如何去做这件事。 我的模型大多是简单的CRUD,有很多getter。 任何想法如何做到这一点?

安装MySQL JDBC驱动程序msi

我已经从http://dev.mysql.com/downloads/connector/j/下载了MySQL的JDBC驱动程序“mysql-connector-java-gpl-5.1.26.msi”。 但我不知道如何使用它。 http://dev.mysql.com/doc/refman/5.6/en/connector-j-binary-installation.html上的文档说这是一个zip文件,它具有所需的jar文件。 但是我得到的是.msi文件。 当我执行msi文件,它只是开始安装和消失。 任何想法如何我可以从MSI的jar文件?

MySQL中的VARCHAR(255)和TINYTEXTstringtypes有什么区别?

MySQL中的 VARCHAR(255)和TINYTEXTstringtypes有什么区别? 它们中的每一个都允许存储最大长度为255个字符的string。 存储要求也是一样的。 我应该什么时候比另一个更喜欢?

MySQL性能优化:按date时间字段sorting

我有一张大约有100000个博客文章的表格,通过1:n关系链接到一个有50个Feed的表格。 当我使用select语句查询这两个表时,由发布表的datetime字段sorting,MySQL总是使用filesort,导致查询时间非常慢(> 1秒)。 这是postings表(简化)的模式: +———————+————–+——+—–+———+—————-+ | Field | Type | Null | Key | Default | Extra | +———————+————–+——+—–+———+—————-+ | id | int(11) | NO | PRI | NULL | auto_increment | | feed_id | int(11) | NO | MUL | NULL | | | crawl_date | datetime | NO | | NULL | | […]

如何过滤(或replace)UTF-8中需要超过3个字节的unicode字符?

我正在使用Python和Django,但是我遇到了由于MySQL限制而导致的问题。 根据MySQL 5.1文档 ,他们的utf8实现不支持4字节的字符。 MySQL 5.5将使用utf8mb4支持4字节字符; 而且将来有一天, utf8也可能会支持它。 但是我的服务器还没有准备好升级到MySQL 5.5,因此我只能使用3个字节或更less的UTF-8字符。 我的问题是: 如何过滤(或replace)将需要超过3个字节的Unicode字符? 我想用官方的\ufffd ( U + FFFDreplace字符 )replace所有的4字节字符,还是用? 。 换句话说,我想要一个与Python自己的str.encode()方法非常相似的行为(当传递'replace'参数时)。 编辑:我想要一个类似于encode()的行为,但我不想实际编码string。 我想在过滤后仍然有一个unicodestring。 在存储到MySQL之前,我不想逃避这个angular色,因为那意味着我需要将我从数据库中获得的所有string都取消,这是非常烦人和不可行的。 也可以看看: 将某些unicode字符保存到MySQL (在Django票证系统中) 时出现“错误的string值”警告 '𠂉'不是一个有效的unicode字符,但在unicode字符集? (在堆栈溢出) [编辑]增加了有关build议解决scheme的testing 所以我得到了很好的答案。 谢谢,人民! 现在,为了select其中之一,我做了一个快速testing,find最简单,最快速的一个。 #!/usr/bin/env python # -*- coding: utf-8 -*- # vi:ts=4 sw=4 et import cProfile import random import re # How many times to […]

int(11)与int(其他)

我是新来的networking编程和做不同的教程,我可以在网上find。 我做了我的研究,发现在int(11)中,11是整数的最大显示宽度,如果除非整数是UNSIGNED(在这个例子中是10),它是默认值。 当我看到像这样的东西: id INT(11) not null AUTO_INCREMENT 我没有问题 但是为什么我在不同的教程中看到不同的东西呢? 有的说,有的说, id INT(10) not null AUTO_INCREMENT 乃至 id INT(4) not null AUTO_INCREMENT 那些试图实现的东西的作者是什么? 他们没有一个人似乎懒得给出解释10或4的意思。 好吧,他们显然减less了显示宽度,但为什么? 什么是错误的默认宽度11? 他们为什么要改变它? 或者还有什么其他的原因我不知道? 谢谢。

主键应该始终是无符号的?

由于主键(标识符)不会低于0,我想它应该始终是无符号的?