jjzjj

SQL 计算多对多值还是每次添加新行时都计算?

我正在使用MySQL(MyISAM)5.0.41并且我有这个查询:SELECT`x`.`items`.id,`x`.`items`.name,COUNT(*)AScountFROM`x`.`items`INNERJOIN`x`.`user_items`ON`x`.`items`.id=`x`.`user_items`.item_idGROUPBYnameHAVINGcount>2ORDERBYcountDESC我有大约36,000个用户、175,000个user_items和60,000个不断添加的项目。所以这个查询有点慢......是否更好:在items中有一个count字段并定期更

sql - MySQL 查询 : Select most-recent items with a twist

抱歉,标题没有更多帮助。我有一个来自两个来源的媒体文件URL数据库:(1)RSS提要和(2)手动输入。我想查找最近添加的10个URL,但最多只能从任何Feed中查找一个。为简化起见,表“urls”包含列“url,feed_id,timestamp”。feed_id=''用于任何手动输入的URL。我将如何编写查询?请记住,我想要十个最近的url,但只有一个来自任何单个feed_id。 最佳答案 假设feed_id=0是手动输入的东西,这样就可以了:selectp.*fromprogramspleftjoin(selectmax(id)

mysql - 当我输入 Postgres 命令时,我的 mysql 客户端似乎是 'break'。任何想法如何撤消这个?

注意:我在几乎全新的osx10.6安装上使用bashshell。上zsh的friend好像不会出现这种情况我习惯了Postgres,所以我经常本能地打字\dtablename代替desctablename;当我这样做的时候,mysql客户端不是很开心mysql>\ditemsmysql>;->descitems;ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear';->请注意在“哦废话”

sql - 合并和组?

好的。我有一个看起来像这样的查询:SELECTSUM(`order_items`.`quantity`)as`count`,`menu_items`.`name`FROM`orders`,`menu_items`,`order_items`WHERE`orders`.`id`=`order_items`.`order_id`AND`menu_items`.`id`=`order_items`.`menu_item_id`AND`orders`.`date`>='2008-11-01'AND`orders`.`date`此查询的目的是显示在给定日期范围内售出的商品数量。虽然这行得通,但我

带有连接、HAVING 和 GROUP BY 的 MySQL DELETE 语句

我有一个项目表和另一个报告。每个报告都有一个外键链接到被报告的项目。我正在尝试删除此查询中显示的所有项目:SELECTitems.id,title,SUM(weight)AStotal_weight,SUM(weight)*10/viewsASscoreFROMitems,reportsWHEREitems.id=reports.item_idGROUPBYitems.idHAVINGscore>=50;尝试这样的事情:DELETEitemsFROM(SELECTitems.id,title,SUM(weight)AStotal_weight,SUM(weight)*10/viewsA

php - 基于 MySQL 的 Web 应用程序 : Easiest way for users to choose order or items?

我正在研究用户可以重新排列项目的东西,稍后,这些项目需要按照选择的顺序显示。举一个简单的例子,考虑一个项目列表:A、B、C、D、E、F、G。MySQL表会很简单:user_id、letter、sortnumber允许用户逐步更改顺序。他们可能会将A移到D之后,将G移到开头等。除此之外,他们还可以添加和删除项目。所以他们可能会删除C,或添加X。在这些步骤中的每一步中,我都会将数据发送到PHP,PHP将对其进行处理,并在MySQL中设置项目。我认为有两种方法可以解决这个问题:每次他们添加/删除/重新排序东西,将整个列表发送到PHP,删除他们所有的数据以前在那里,只是插入新列表。问题是,这是

mysql - volatile 数据查询优化

我正在尝试解决mysql-5.0数据库的延迟问题。查询本身非常简单:SELECTSUM(items)FROMtblWHEREcol='val'col上有一个索引,在最坏的情况下,要求和的值不超过10000个(的所有值的count(items)的平均值)col将在10左右)。该表最多有200万行。查询运行频繁,有时执行时间长达10秒,尽管其中99%的执行时间为查询并不是真正可缓存的-在几乎所有情况下,像这样的每个查询都会在下一分钟插入到该表中,并且显示旧值是不可能的(账单信息)。key足够好-~100%命中我正在寻找的结果是每个查询 最佳答案

php - 在 mysql 表中查找标记项的出现

假设我有这张表:item_idtag_id-------------11122223正如您可能想象的那样,这是一个表格,我在其中引用了一些项目和属于它们的标签。一个项目可以有多个标签,并且可以为多个项目选择一个标签。假设我还有一个特定的标签集合(例如tag_id=50、73和119)和一个带有ID(由item_id引用)的“项目”表。是否有一个高效查询可以给我:带有这些标签的项目数元素本身?我尝试过的SELECTCOUNT(*)FROM(SELECTCOUNT(*)AScFROMitems_tagsitJOINitemsiONi.id=it.item_idWHERE(tag_id=7O

mysql - 防止 Rails 缓存 ActiveRecord 查询的结果

我有一个rake任务需要遍历大量记录(称为商家),每个记录都有大量关联项目。我的问题是,由于Rails会自动缓存我的数据库查询结果,我很快就将我的工作人员放入交换空间。简而言之,我想知道如何运行如下命令:Merchant.all.each{|m|items=m.items}每次都不会缓存“items”的值。我试过:Merchant.all.eachdo|m|ActiveRecord::Base.connection.uncacheddoitems=m.itemsendend我还尝试将其添加到我的商家模型中:defitems_uncachedself.class.uncached{ite

mysql - 后续: how to model discount on items in a database?

我正在建立一个电子商务网站,并希望在有限的时间内为某些商品提供折扣。我想显示我们为每种产品提供多少折扣。因此,我需要每个产品的两个值,原价和给定期限内的折扣价。这是对answer的跟进对于question我问架构:产品产品编号姓名产品定价productId(FK)开始日期时间戳结束日期时间戳价格原始价格仅适用于我们使用方法A(稍后出现)数据:Product:1|Apple2|BananaT1:2011年12月21日:此时没有交易ProductPricing1|Dec20,2011,00:00|Jan1,2038,00:00|10$|10$2|Dec20,2011,00:00|Jan1,