Tag: MySQL

MySQL中的多个更新

我知道你可以一次插入多行,有没有办法一次更新多行(如在一个查询中)在MySQL中? 编辑:例如,我有以下 Name id Col1 Col2 Row1 1 6 1 Row2 2 2 3 Row3 3 9 5 Row4 4 16 8 我想将所有以下更新结合到一个查询中 UPDATE table SET Col1 = 1 WHERE id = 1; UPDATE table SET Col1 = 2 WHERE id = 2; UPDATE table SET Col2 = 3 WHERE id = 3; UPDATE table […]

MySQL:@variables与variables。 有什么不同?

在另一个问题,我贴了一个人告诉我,有一个区别: @variable 和: variable 在MySQL中。 他还提到了MSSQL是如何批量范围的,MySQL有会话范围。 有人能为我详细说明吗?

在my.cnf中将MySQL默认字符集更改为UTF-8?

目前我们在PHP中使用以下命令将字符集设置为UTF-8 。 由于这是一个开销,我们希望将其设置为MySQL中的默认设置。 我们可以在/etc/my.cnf或其他位置执行此操作吗? SET NAMES 'utf8' SET CHARACTER SET utf8 我在/etc/my.cnf中查找了一个默认的字符集,但是没有关于字符集的东西。 在这一点上,我做了以下操作将MySQL字符集和归类variables设置为UTF-8: skip-character-set-client-handshake character_set_client=utf8 character_set_server=utf8 这是处理这个问题的正确方法吗?

自然sorting在MySQL中

有没有一个优雅的方式来在MySQL数据库中进行自然sorting? 例如,如果我有这个数据集: 最终幻想 最终幻想4 最终幻想10 最终幻想12 最终幻想12:Promathia的链条 最终幻想冒险 最终幻想起源 最终幻想战术 任何其他优雅的解决scheme,而不是把游戏的名字分解成他们的组件 标题 :“最终幻想” 号码 :“12” 副标题 :“Promathia链子” 确保它们以正确的顺序出来? (10之后4,而不是2之前)。 这样做是在a **中的一个痛苦,因为时不时的另一个游戏打破了parsing游戏标题(例如“战锤4万”,“詹姆斯·邦德007”)的机制

MySQL和NoSQL:帮助我select正确的一个

有一个很大的数据库,有10亿行,被称为线程(这些线程实际上是存在的,我并不是因为我喜欢它而变得更难)。 (int id,string hash,int replycount,int dateline(timestamp),int forumid,string标题) 查询: select * from thread where forumid = 100 and replycount > 1 order by dateline desc limit 10000, 100 因为有1G的logging,这是一个很慢的查询。 所以我想,让我们把这个1G的logging分成许多个论坛(类)我有! 这几乎是完美的。 有很多桌子我有更less的loggingsearch周围,它真的更快。 现在查询变成: select * from thread_{forum_id} where replycount > 1 order by dateline desc limit 10000, 100 99%的论坛(类别)的速度真的很快,因为大多数论坛只有less数几个主题(100k-1M)。 但是,因为有一些约10M的logging,一些查询仍然是慢(0.1 / 0.2秒,对我的应用程序!, 我已经使用索引! )。 我不知道如何改善这个使用MySQL。 有没有办法? […]

MySQL数据透视表查询与dynamic列

我正在使用下列表格来存储产品数据: mysql> SELECT * FROM product; +—————+—————+——–+ | id | name | description | stock | +—————+—————+——–+ | 1 | product1 | first product | 5 | | 2 | product2 | second product| 5 | +—————+—————+——–+ mysql> SELECT * FROM product_additional; +—————–+————+ | id | fieldname | fieldvalue | +—————–+————+ | 1 | size […]

MySQL:ORDER BY RAND()的替代方法

我已经阅读了关于MySQL的ORDER BY RAND()函数的几个替代方法,但是大多数替代方法仅适用于需要单个随机结果的地方。 有没有人有任何想法如何优化一个查询返回多个随机结果,如下所示: SELECT u.id, p.photo FROM users u, profiles p WHERE p.memberid = u.id AND p.photo != '' AND (u.ownership=1 OR u.stamp=1) ORDER BY RAND() LIMIT 18

在MySQL中计算一个正在运行的总数

我有这个MySQL查询: SELECT DAYOFYEAR(`date`) AS d, COUNT(*) FROM `orders` WHERE `hasPaid` > 0 GROUP BY d ORDER BY d 其中返回这样的东西: d | COUNT(*) | 20 | 5 | 21 | 7 | 22 | 12 | 23 | 4 | 我真的很喜欢的是另一列结束显示运行总数: d | COUNT(*) | ??? | 20 | 5 | 5 | 21 | 7 […]

PDOException“找不到驱动程序”

我刚刚用Apache,MySQL和PHP安装了Debian Lenny,我收到了一个PDOException could not find driver 。 这是它所指的特定的代码行: $dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS) DB_HOST , DB_NAME , DB_USER和DB_PASS是我定义的常量。 它在生产服务器(以及我之前的Ubuntu服务器设置)上工作正常。 这是我的PHP安装? search互联网没有帮助,我得到的只是专家交stream和例子,但没有解决scheme。

为每组分组的SQL结果获取最大值的logging

你如何获得包含每个分组集合的最大值的行? 我在这个问题上看到了一些过于复杂的变化,没有一个答案很好。 我试图把最简单的例子放在一起: 给出如下的表格,包括人员,组别和年龄栏,你将如何得到每组中最年长的人? (一个组内的领带应该给第一个字母的结果) Person | Group | Age — Bob | 1 | 32 Jill | 1 | 34 Shawn| 1 | 42 Jake | 2 | 29 Paul | 2 | 36 Laura| 2 | 39 预期结果集: Shawn | 1 | 42 Laura | 2 | 39