Tag: MySQL

PostgreSQL GROUP BY与MySQL不同?

我一直在迁移一些MySQL查询到PostgreSQL来使用Heroku。 我的大部分查询都能正常工作,但是当我使用group时,我仍然遇到类似的重复性错误: 错误:列“XYZ”必须出现在GROUP BY子句中或用于聚合函数中 有人能告诉我我做错了什么吗? MySQL的工作100%: SELECT `availables`.* FROM `availables` INNER JOIN `rooms` ON `rooms`.id = `availables`.room_id WHERE (rooms.hotel_id = 5056 AND availables.bookdate BETWEEN '2009-11-22' AND '2009-11-24') GROUP BY availables.bookdate ORDER BY availables.updated_at PostgreSQL错误: ActiveRecord :: StatementInvalid:PGError:错误:列“availables.id”必须出现在GROUP BY子句中或用于聚合函数中: SELECT“availables”。* FROM“availables”INNER JOIN“rooms”ON“rooms”.id =“availables”.room_id WHERE(rooms.hotel_id = 5056 AND availables.bookdate BETWEEN E'2009-10-21'AND E' 2009-10-23')GROUP BY availables.bookdate ORDER BY […]

更改“Mysql Row size too”的限制

我怎样才能改变这个限制 行大小太大(> 8126)。 将某些列更改为TEXT或BLOB或使用ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED可能会有帮助。 在当前行格式中,768字节的BLOB前缀被内联存储。 表: id int(11) No name text No date date No time time No schedule int(11) No category int(11) No top_a varchar(255) No top_b varchar(255) No top_c varchar(255) No top_d varchar(255) No top_e varchar(255) No top_f varchar(255) No top_g varchar(255) No top_h varchar(255) No top_i varchar(255) No top_j varchar(255) […]

SQLite的UPSERT – 重复密钥更新

MySQL有这样的东西: INSERT INTO visits (ip, hits) VALUES ('127.0.0.1', 1) ON DUPLICATE KEY UPDATE hits = hits + 1; 据我所知这个function在SQLite中不存在,我想知道的是,如果有任何方法来归档相同的效果,而不必执行两个查询。 另外,如果这是不可能的,你更喜欢什么: SELECT +(INSERT或UPDATE)或 更新(+ INSERT 如果更新失败 )

如何获取MySQL中的下一个/上一个logging?

假设我有loggingID 3,4,7,9,我希望能够通过导航通过下一个/上一个链接从一个到另一个。 问题是,我不知道如何获取最近ID较高的logging。 所以当我有一个ID 4的logging,我需要能够获取下一个现有的logging,这将是7.该查询可能看起来像 SELECT * FROM foo WHERE id = 4 OFFSET 1 我怎样才能获取下一个/上一个logging,而无需获取整个结果集和手动迭代? 我正在使用MySQL 5。

如何从.myd,.myi,.frm文件恢复MySQL数据库

如何从.myd , .myi , .frm文件恢复我的一个MySQL数据库?

如何避免mysql'尝试locking时发现死锁; 尝试重新启动交易“

我有一个innoDB表logging在线用户。 它会更新每个用户刷新的页面,以跟踪他们所在的页面以及他们上次访问网站的date。 然后我有一个每15分钟运行一次的cron删除旧logging。 我得到了一个“试图locking时发现的死锁; 尝试重新启动事务“昨天晚上大约5分钟,它似乎是运行INSERT到这个表中。 有人可以build议如何避免这个错误? ===编辑=== 以下是正在运行的查询: 首次访问网站: INSERT INTO onlineusers SET ip = 123.456.789.123, datetime = now(), userid = 321, page = '/thispage', area = 'thisarea', type = 3 在每个页面刷新: UPDATE onlineusers SET ips = 123.456.789.123, datetime = now(), userid = 321, page = '/thispage', area = 'thisarea', type = 3 WHERE id […]

如何获得一个SQL查询多个计数?

我想知道如何写这个查询。 我知道这个实际的语法是假的,但它会帮助你理解我想要的。 我需要这种格式,因为它是一个更大的查询的一部分。 SELECT distributor_id, COUNT(*) AS TOTAL, COUNT(*) WHERE level = 'exec', COUNT(*) WHERE level = 'personal' 我需要这一切返回一个查询。 此外,它需要在一行,所以下面不会工作: 'SELECT distributor_id, COUNT(*) GROUP BY distributor_id'

MySql服务器启动错误“服务器退出而不更新PID文件”

在雪豹上,启动MySQL会出现以下错误: 服务器退出而不更新PID文件 my.cnf中 [mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16K pid-file=/var/run/mysqld/mysqld.pid [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid

SQL语句忽略了哪里的参数

SELECT * FROM people WHERE university='2' AND MATCH (lname,fname) AGAINST ('+massive' IN BOOLEAN MODE) OR (fname LIKE '%box%' OR lname LIKE '%box%') 这个查询是允许结果通过以外的其他university='2'过滤,我将如何更新,所以它严格只显示结果在大学= 2 我把全文search和LIKE结合起来的原因是因为全文search的最小字母数,而且因为我处于共享主机scheme,所以我无法修改这些设置。 因此,我已经结合了全文和LIKE为了适应 任何想法将是非常有益的谢谢你!

操作数应该包含1列 – MySQL不在IN中

SELECT * from campaigns WHERE id not in (SELECT e.id_campaign, d.name, d.frequency, d.country, d.referral, d.bid, d.status, COUNT(e.id) AS countcap FROM campaigns d LEFT JOIN served e ON d.id = e.id_campaign WHERE d.status = 'Active' GROUP BY e.id_campaign HAVING countcap < d.frequency) 我得到的错误“操作数应该包含1列” – 但我需要COUNT(e.id)