标签: mysql5

带有"默认值"的SQL GROUP BY

我正在尝试SELECT使用GROUP BY子句创建语句,该子句应返回"默认值".

想象一下以下简单的MySQL表:

CREATE TABLE `tracker` (
  `id` INTEGER PRIMARY KEY auto_increment,
  `date` DATETIME NOT NULL,
  `customer_id` INTEGER NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

该表只包含一条记录:

INSERT INTO `tracker` (`date`, `customer_id`) VALUES('2010-05-03', 1);
Run Code Online (Sandbox Code Playgroud)

在病房之后,我正在执行以下SQL查询:

SELECT DATE(`date`), COUNT(customer_id) FROM tracker
WHERE DATE(`date`) >= '2010-05-01' AND DATE(`date`) <= '2010-05-05'
GROUP BY DATE(`date`) ORDER BY DATE(`date`);
Run Code Online (Sandbox Code Playgroud)

并获得预期的结果集:

+----+---------------------+-------------+
| id | date                | customer_id |
+----+---------------------+-------------+
|  1 | 2010-05-10 00:00:00 |           1 |
+----+---------------------+-------------+
Run Code Online (Sandbox Code Playgroud)

但是,我希望结果集看起来像这样:

+--------------+--------------------+
| DATE(`date`) | COUNT(customer_id) |
+--------------+--------------------+ …
Run Code Online (Sandbox Code Playgroud)

mysql sql group-by mysql5

6
推荐指数
1
解决办法
3346
查看次数

复杂的连接查询

我有MYSQL表如下

user TABLE {id INT}

profile TABLE {user_id INT, facebook_id varchar(50)}

messages TABLE {id INT, message TEXT, from_id INT, type enum('main','facebook'}

messages_to TABLE {user_id varchar(50), message_id INT}

profile.user_id REFERS To user.id
- the messages_to.message_id refers to the messages.ID column.
- the messages_to.user_id refers to profile.user_id IF messages.type = 'main' BUT
  if message_type = 'facebook' THEN messages_to.user_id REFERS to profile.facebook_id
Run Code Online (Sandbox Code Playgroud)

我想做一个基本上选择给特定人的所有消息的连接查询,但事情是messages_to.user_id可以引用 the person's facebook ID or the person's ID (a reference to user.id column).

所以基本上查询应该如下工作

  • 它应该选择消息表中的所有消息,并messages.type = 'facebook'检查messages_to.user_id是否等于该人的FACEBOOK ID.(请注意,messages_to表存储每个邮件ID的收件人) …

php mysql mysql5

6
推荐指数
1
解决办法
143
查看次数

SQL选择union中的多个项目

我正在执行几个选择并希望计算重叠.例:

SELECT id FROM foo WHERE ...
SELECT id FROM bar WHERE ...
SELECT id FROM baz WHERE ...
Run Code Online (Sandbox Code Playgroud)

分别调用这些查询a,b和c.假设给出(1,2,3,4,5),b给出(1,3,5),c给出(4,5,6).我想结合这些并计算多重性.对于上面的例子,我正在寻找的结果是

id | multiplicity
-----------------
1  | 2
2  | 1
3  | 2
4  | 2
5  | 3
6  | 1
Run Code Online (Sandbox Code Playgroud)

如何在一个查询中在MySQL5中执行此操作?(a,b和c部分可以是普通选择或存储过程).

mysql sql union mysql5

6
推荐指数
1
解决办法
577
查看次数

org.apache.tomcat.dbcp.dbcp.SQLNestedException:无法为连接URL'null'创建类''的JDBC驱动程序

嗨当我尝试使用JNDI连接到数据源时,我收到此错误:

    [org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
    at org.apache.roller.weblogger.business.DatabaseProvider.getConnection(DatabaseProvider.java:179)
    at org.apache.roller.weblogger.business.DatabaseProvider.<init>(DatabaseProvider.java:141)
    at org.apache.roller.weblogger.business.startup.WebloggerStartup.prepare(WebloggerStartup.java:171)
    at org.apache.roller.weblogger.ui.core.RollerContext.contextInitialized(RollerContext.java:138)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4704)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1079)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1315)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.NullPointerException
    at …
Run Code Online (Sandbox Code Playgroud)

jndi mysql5 tomcat6 apache-roller

5
推荐指数
1
解决办法
3万
查看次数

如何导入数据库,更新已更改的产品,删除已删除的产品

我对基本的MySQL"好",但这是"我的头脑"!

目标:

  • 导入数据库
  • 更新已更改的产品
  • 删除已删除的产品
  • 快速有效

数据库表是巨大的,速度是一个问题.

没有MyISAM是inoDB会更快吗?每个数据库都在一个唯一的表中.

我被赋予了这个作为我正在尝试做的事情的起点:

CREATE TABLE `table` LIKE LiveTable
LOAD DATA INFILE..... INTO `table`
UPDATE `table`  SET delete=1; -- Set the delete field to true  because it will not have been updated
UPDATE `table` INNER JOIN`table`ON `LiveTable.ID`=`table.ID`
SET LiveTable.Col1=table.Col1, LiveTable.Col2=table.Col2….. delete=0
INSERT INTO LiveTable(ID,Col1,Col2,…  delete=0)
SELECT ID,Col1,Col2,...FROM `table`
LEFT JOIN LiveTable 
ON table.ID = LiveTable.ID
WHERE LiveTable.ID IS NULL
DELETE FROM LiveTableWHERE delete = 0
EMPTY TABLE `table`
Run Code Online (Sandbox Code Playgroud)
> CREATE TABLE `product_table`   (
>      `programname` …
Run Code Online (Sandbox Code Playgroud)

mysql database mysql5 mysql-5.1

5
推荐指数
1
解决办法
1787
查看次数

具有唯一字段的MySQL数据库忽略结束空格

我的项目需要从用户开始输入,左边的间距和单词右边的间距,例如'apple'.如果用户键入"apple"或"apple",无论是单词的左侧还是右侧是一个空格还是多个空格,我都需要以这种方式存储它.

此字段具有Unique属性,但我尝试在左侧插入带间距的单词,并且它可以正常工作.但是当我尝试在右边插入带有间距的单词时,它会修剪单词右边的所有间距.

所以我想在间距之后在单词的右边添加一个特殊字符.但我希望有一个更好的解决方案来解决这个问题.

CREATE TABLE strings
( id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
string varchar(255) COLLATE utf8_bin NOT NULL,
created_ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id), UNIQUE KEY string (string) )
ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
Run Code Online (Sandbox Code Playgroud)

mysql mysql5

5
推荐指数
3
解决办法
4693
查看次数

命名mysql列有哪些规则?

在MySQL表中,命名列,我可以使用

  • 空间
  • 大写字母
  • UTF8字符

我还应遵循哪些其他规则?

(MySQL5)

mysql database mysql5 restriction

5
推荐指数
1
解决办法
7407
查看次数

MySQL 按日期和计数(包括缺失日期)分组

以前我正在执行以下操作以从报告表中获取每日计数。

SELECT COUNT(*) AS count_all, tracked_on
 FROM `reports`
 WHERE (domain_id = 939 AND tracked_on >= '2014-01-01' AND tracked_on <= '2014-12-31')
 GROUP BY tracked_on
 ORDER BY tracked_on ASC;
Run Code Online (Sandbox Code Playgroud)

显然,这不会给我 0 缺失日期的计数。

然后我终于找到了一个最佳解决方案来生成给定日期范围之间的日期序列。但我面临的下一个挑战是将其与我的报告表连接起来并按日期分组计数。

select count(*), all_dates.Date as the_date, domain_id
from (
    select curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY as Date
    from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all …
Run Code Online (Sandbox Code Playgroud)

mysql date mysql5

5
推荐指数
1
解决办法
6390
查看次数

以字符串格式返回MySQL表中的所有列

有没有办法以字符串格式返回MySQL表中的所有列?

我希望有这样的东西返回:

course_id, name, par, yds, mtrs 等等

我知道如何在表(SHOW FIELDS FROM course;)中显示字段/列,但这些是以表格格式返回的.

mysql sql mysql5

4
推荐指数
1
解决办法
3568
查看次数

"您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以获得正确的语法错误"Hibernate 4

我在使用Hibernate 4.1MySQL 5文件夹实体保存到数据库时收到了我在下面添加的错误.我对其他权利没有任何问题.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax
Run Code Online (Sandbox Code Playgroud)

这是我的文件夹表:

CREATE TABLE `folder` (
  `folder_id` int(11) NOT NULL AUTO_INCREMENT,
  `folder_name` varchar(45) COLLATE utf8_turkish_ci NOT NULL,
  `order` int(11) DEFAULT NULL,
  PRIMARY KEY (`folder_id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci$$
Run Code Online (Sandbox Code Playgroud)

我的文件夹实体:

    @Entity
    @Table(name = "folder")
    public class Folder implements Serializable{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "folder_id", nullable = false, …
Run Code Online (Sandbox Code Playgroud)

mysql spring hibernate mysql5

4
推荐指数
2
解决办法
3万
查看次数