标签: mysql

MySQL查询GROUP BY日/月/年

有可能我做一个简单的查询来计算我在一个确定的时间段内有多少记录,如年,月或日,有一个TIMESTAMP字段,如:

SELECT COUNT(id)
FROM stats
WHERE record_date.YEAR = 2009
GROUP BY record_date.YEAR
Run Code Online (Sandbox Code Playgroud)

甚至:

SELECT COUNT(id)
FROM stats
GROUP BY record_date.YEAR, record_date.MONTH
Run Code Online (Sandbox Code Playgroud)

要有月度统计数据.

谢谢!

mysql sql datetime group-by date

609
推荐指数
12
解决办法
60万
查看次数

何时在MySQL中使用单引号,双引号和后退标记

我正在尝试学习编写查询的最佳方法.我也理解保持一致的重要性.到现在为止,我已经随机使用了单引号,双引号和后退,没有任何实际想法.

例:

$query = 'INSERT INTO table (id, col1, col2) VALUES (NULL, val1, val2)';
Run Code Online (Sandbox Code Playgroud)

此外,在上面的例子中,考虑table可能是变量.

这是什么标准?你是做什么?

我一直在这里阅读类似问题的答案大约20分钟,但看起来这个问题没有明确的答案.

mysql sql quotes

605
推荐指数
11
解决办法
18万
查看次数

如何临时禁用MySQL中的外键约束?

是否可以暂时禁用MySQL中的约束?

我有两个Django模型,每个模型都有一个ForeignKey到另一个.由于ForeignKey约束,删除模型的实例会返回错误:

cursor.execute("DELETE FROM myapp_item WHERE n = %s", n)
transaction.commit_unless_managed()  #a foreign key constraint fails here

cursor.execute("DELETE FROM myapp_style WHERE n = %s", n)
transaction.commit_unless_managed()
Run Code Online (Sandbox Code Playgroud)

是否可以暂时禁用约束并删除?

mysql sql django django-models

605
推荐指数
8
解决办法
63万
查看次数

在MySQL中创建新用户并授予其对一个数据库的完全访问权限

我想在MySQL中创建一个新用户,并且只对一个数据库提供完全访问权限,比如dbTest我用一个命令创建的数据库create database dbTest;.那些MySQL命令会做什么?

mysql access-control database-security

602
推荐指数
6
解决办法
69万
查看次数

如何截断外键约束表?

为什么没有一个TRUNCATEmygroup工作?即使ON DELETE CASCADE SET我得到了:

错误1701(42000):无法截断外键约束中引用的表(mytest.instance,CONSTRAINT instance_ibfk_1FOREIGN KEY(GroupID)REFERENCES mytest.mygroup(ID))

drop database mytest;
create database mytest;
use mytest;

CREATE TABLE mygroup (
   ID    INT NOT NULL AUTO_INCREMENT PRIMARY KEY
) ENGINE=InnoDB;

CREATE TABLE instance (
   ID           INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   GroupID      INT NOT NULL,
   DateTime     DATETIME DEFAULT NULL,

   FOREIGN KEY  (GroupID) REFERENCES mygroup(ID) ON DELETE CASCADE,
   UNIQUE(GroupID)
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)

mysql truncate constraints foreign-keys dml

601
推荐指数
9
解决办法
46万
查看次数

围绕mysql_real_escape_string()的SQL注入

即使使用mysql_real_escape_string()函数,是否存在SQL注入的可能性?

考虑这个示例情况.SQL是用PHP构造的,如下所示:

$login = mysql_real_escape_string(GetFromPost('login'));
$password = mysql_real_escape_string(GetFromPost('password'));

$sql = "SELECT * FROM table WHERE login='$login' AND password='$password'";
Run Code Online (Sandbox Code Playgroud)

我听过很多人对我说,这样的代码仍然很危险,即使使用了mysql_real_escape_string()函数也可以破解.但我想不出任何可能的漏洞?

像这样的经典注射:

aaa' OR 1=1 --
Run Code Online (Sandbox Code Playgroud)

不工作.

你知道任何可能通过上面的PHP代码注入的注入吗?

php mysql sql security sql-injection

596
推荐指数
4
解决办法
22万
查看次数

MySQL中的INDEX,PRIMARY,UNIQUE,FULLTEXT之间的区别?

创建MySQL表时PRIMARY,UNIQUE,INDEX和FULLTEXT之间有什么区别?

我该如何使用它们?

mysql indexing schema key

589
推荐指数
3
解决办法
29万
查看次数

授予**所有**数据库权限

我创建了数据库,例如'mydb'.

CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'myuser'@'%' IDENTIFIED BY PASSWORD '*HASH';
GRANT ALL ON mydb.* TO 'myuser'@'%';
GRANT ALL ON mydb TO 'myuser'@'%';
GRANT CREATE ON mydb TO 'myuser'@'%';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

现在我可以从任何地方登录到数据库,但无法创建表.

如何授予该数据库和(将来)表的所有权限.我无法在'mydb'数据库中创建表.我总是得到:

CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin);
ERROR 1142 (42000): CREATE command denied to user 'myuser'@'...' for table 't'
Run Code Online (Sandbox Code Playgroud)

mysql mariadb mysql-error-1142

589
推荐指数
11
解决办法
165万
查看次数

MySQL错误1093 - 无法在FROM子句中指定更新的目标表

story_category我的数据库中有一个表有损坏的条目.下一个查询返回损坏的条目:

SELECT * 
FROM  story_category 
WHERE category_id NOT IN (
    SELECT DISTINCT category.id 
    FROM category INNER JOIN 
       story_category ON category_id=category.id);
Run Code Online (Sandbox Code Playgroud)

我试图删除它们执行:

DELETE FROM story_category 
WHERE category_id NOT IN (
    SELECT DISTINCT category.id 
    FROM category 
      INNER JOIN story_category ON category_id=category.id);
Run Code Online (Sandbox Code Playgroud)

但我得到了下一个错误:

#1093 - 您无法在FROM子句中为更新指定目标表'story_category'

我怎么能克服这个?

mysql subquery mysql-error-1093 sql-delete

556
推荐指数
10
解决办法
42万
查看次数

如何在MySQL中收缩/清除ibdata1文件

我在localhost中使用MySQL作为在R中执行统计的"查询工具",也就是说,每次运行R脚本时,我创建一个新数据库(A),创建一个新表(B),将数据导入B ,提交查询以获得我需要的内容,然后我删除B并删除A.

它对我来说很好,但我意识到ibdata文件大小正在迅速增加,我在MySQL中没有存储任何内容,但ibdata1文件已超过100 MB.

我使用或多或少的默认MySQL设置进行设置,有没有办法可以在一段固定的时间后自动缩小/清除ibdata1文件?

mysql database innodb

550
推荐指数
8
解决办法
52万
查看次数