Questions tagged «mysql»

MySQL是使用结构化查询语言(SQL)的免费,开放源代码关系数据库管理系统(RDBMS)。请勿将此标签用于其他数据库,例如SQL Server,SQLite等。那些是不同的数据库,它们都使用自己的SQL方言来管理数据。


14
子查询与联接
我重构了我们从另一家公司继承来的应用程序的缓慢部分,以使用内部联接而不是子查询,例如: WHERE id IN (SELECT id FROM ...) 重构查询的运行速度提高了约100倍。(约50秒,约0.3秒),我期望有所改善,但是谁能解释为什么如此剧烈?where子句中使用的列均已建立索引。SQL是否在where子句中每行执行一次查询? 更新 -说明结果: 区别在于“(())中的id”查询的第二部分- 2 DEPENDENT SUBQUERY submission_tags ref st_tag_id st_tag_id 4 const 2966 Using where vs 1带有连接的索引行: SIMPLE s eq_ref PRIMARY PRIMARY 4 newsladder_production.st.submission_id 1 Using index

3
MySQL外键约束,级联删除
我想使用外键来保持完整性并避免使用孤立键(我已经使用过innoDB)。 如何创建在CASCADE上删除的SQL语句? 如果我删除类别,那么如何确保它不会删除也与其他类别相关的产品。 数据透视表“ categories_products”在其他两个表之间创建多对多关系。 categories - id (INT) - name (VARCHAR 255) products - id - name - price categories_products - categories_id - products_id

9
在Django中保存Unicode字符串时,MySQL“字符串值不正确”错误
尝试将first_name,last_name保存到Django的auth_user模型时,出现奇怪的错误消息。 失败的例子 user = User.object.create_user(username, email, password) user.first_name = u'Rytis' user.last_name = u'Slatkevičius' user.save() >>> Incorrect string value: '\xC4\x8Dius' for column 'last_name' at row 104 user.first_name = u'Валерий' user.last_name = u'Богданов' user.save() >>> Incorrect string value: '\xD0\x92\xD0\xB0\xD0\xBB...' for column 'first_name' at row 104 user.first_name = u'Krzysztof' user.last_name = u'Szukiełojć' user.save() …
158 python  mysql  django  unicode  utf-8 




8
在重复密钥更新上与插入相同
我到处搜寻,但没有找到可能。 我有这个MySQL查询: INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8) 字段ID具有“唯一索引”,因此不能有两个。现在,如果数据库中已经存在相同的ID,我想对其进行更新。但是我真的必须再次指定所有这些字段,例如: INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8) ON DUPLICATE KEY UPDATE a=2,b=3,c=4,d=5,e=6,f=7,g=8 要么: INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8) ON DUPLICATE KEY UPDATE a=VALUES(a),b=VALUES(b),c=VALUES(c),d=VALUES(d),e=VALUES(e),f=VALUES(f),g=VALUES(g) 我已经在插入中指定了所有内容... 需要特别说明的是,我想通过变通的方式获取ID! id=LAST_INSERT_ID(id) 我希望有人能告诉我最有效的方法是什么。

5
将数据库字段加1
使用MySQL,如果我有一个字段(例如登录名),我将如何在sql命令中将该字段更新为1? 我正在尝试创建一个INSERT查询,该查询创建firstName,lastName和登录名。但是,如果firstName和lastName的组合已经存在,则将登录数增加1。 因此表格可能看起来像这样。 firstName----|----lastName----|----logins John Jones 1 Steve Smith 3 我需要一个命令,该命令在运行时将插入一个新的人(即Tom Rogers),或者如果使用约翰·琼斯的名字则增加登录名。
158 mysql  insert  increment 

3
PDO获取最后插入的ID
我有一个查询,我想插入最后一个ID。字段ID是主键,并且是自动递增的。 我知道我必须使用以下语句: LAST_INSERT_ID() 该语句适用于如下查询: $query = "INSERT INTO `cell-place` (ID) VALUES (LAST_INSERT_ID())"; 但是,如果我想使用以下语句获取ID: $ID = LAST_INSERT_ID(); 我收到此错误: Fatal error: Call to undefined function LAST_INSERT_ID() 我究竟做错了什么?
158 php  mysql  database  pdo 

9
MySQL-在WHERE子句中使用COUNT(*)
我正在尝试在MySQL中完成以下操作(请参见pseudo代码) SELECT DISTINCT gid FROM `gd` WHERE COUNT(*) > 10 ORDER BY lastupdated DESC 有没有一种方法可以在WHERE子句中不使用(SELECT ...),因为这似乎浪费资源。


4
MySQL:联接类型的快速细分
我想快速细分MySQL联接的类型。我知道这些,其余的我不确定它们是什么意思。 逗号分隔(这到底是什么缩写?):SELECT * FROM a, b WHERE b.id = a.beeId AND ... 显示来自a的信息,即使b中没有匹配项: SELECT * FROM a LEFT OUTER JOIN b ON b.id = a.beeId WHERE ... 我看过其他联接,但是想知道是什么使它们与众不同,INNER/ 是什么OUTER,确实增加了LEFT更改。 我已经知道联接的工作方式,我只想知道是否还有其他类型的联接,或者它们只是获得相同结果的不同方式。
157 mysql  join 



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.