草庐IT

store_group

全部标签

php - MySQL Left Join、Group By、Order By、Limit = 糟糕的性能

我目前正在开发一个应用程序,允许用户使用各种参数搜索文档数据库并返回一组分页结果。我正在用PHP/MySQL构建它,这不是我常用的开发平台,但到目前为止它已经很棒了。我遇到的问题是,为了返回完整的结果集,我必须在每个表上使用LEFTJOIN,这完全破坏了我的性能。开发数据库的人说我正在使用的查询将返回正确的结果,所以这就是我必须使用的。查询在下面,我绝不是SQL专家,需要一些帮助。我一直在想,将查询拆分成子查询可能会更好?以下是我当前的查询:SELECTd.title,d.deposition_id,d.folio_start,d.folio_end,pl.place_id,p.sur

sql - GROUP BY 和 ORDER BY

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:SQLORDERBYtotalwithinGROUPBYSELECT*FROMusers_pm_inWHEREuID='1'GROUPBYdialog_idORDERBYdateDESC不会正常工作。我想要做的是分组到dialog_id..然后所有带有dialog_id的按日期排序,然后按日期排序所有..所以:id|uID|bID|msg|dialog_id|date--------------------------------------------------1|1|2|Hello|1|12891586

php - 有没有人发现一种(简单的)方法来限制 group_concat 行?

我有一个很大的查询要从每个国家/地区提取有关报告的信息,现在,我可以限制它的唯一方法是在末尾放置Limit10或某个数字,这将限制国家。但是,我想要做的是将group_concat限制为每个国家/地区10个结果,在我的例子中,这将以某种方式将group_concat一词的每个实例限制为10个。我当前的查询是:SELECTcountry,GROUP_CONCAT(docID),GROUP_CONCAT(analyst),GROUP_CONCAT(region),GROUP_CONCAT(report),GROUP_CONCAT(topic),MAX((date))ASdate,MAX((

mysql - 酒店预订系统 : How to store individual price for each night of a reservation?

我有您期望的标准表格,例如“房间”、“预订”等。目前一切都在关系数据库中。“预订”表存储诸如room_id、入住日期和退房日期等项目。现在,简单地说,当进行预订时,系统会检查“RoomPrice”表并获取每晚预订的费用(取决于日期、入住率等)——费用可能因人而异每晚视当前价格而定。显然,在进行预订时,每晚的价格都是固定的。因此,即使房价在事后更新,该预订仍保持在价格变动之前商定的价格。我的问题是:我应该如何存储这些单独的、在预订时商定的每晚价格?我正在考虑使用另一个表“PriceForNight”,它会存储每晚预订的预订ID、价格和日期。我看到的唯一可能的问题是可扩展性。如果平均预订长

MySQL 更新与 Select with Having 和 Group By 相同的表

我有一个Select查询,它向我返回时间少于8天的所有session的sessionID。效果很好!SELECTsessionIDFROMsessionWHEREsessionStatus='open'GROUPBYsessionIDHAVINGMAX(refTime)但是,我正在尝试更新表,以便sessionID少于8天的每条记录的session状态都更改为“已关闭”。从stackoverflow我知道我无法更新我也从中选择的表,并且Having和GroupBy是使这更复杂的agerate函数。我试过了,但是不行!UPDATEsessionSETsessionStatus='clos

PHP/MySQL : Import data and store in hierarchical nested set for use with jsTree

我正在使用jsTree查看作为嵌套集(左、右、级别等)存储在mySQL数据库中的分层数据。这工作正常,但我需要允许用户通过上传CSV文件来导入数据。当他们这样做时,表格中的任何现有数据都将被删除,因此我不必担心更新左/右字段。他们将要上传的数据将采用以下格式:"Code","Title""100","Unit100""200","Unit200""101","Task101:Thisisatask""102","Task102:Anothertask""201","Task201:Yetanother""300","Unit300""301","Task301:Anotherone"一

MySQL反向GROUP BY结果

我不擅长Mysql表达式,所以这里有一个我正在努力解决的快速问题。我想反转GROUPBY表达式的顺序,以便我可以获得用户的最后一个条目。我设法在互联网上找到了很好的例子,但我无法在不收到错误的情况下用我的表达式实现它们。多谢你们!SELECTmessages.conv,messages.from_user,messages.to_user,messages.content,messages.date_posted,messages.note_read,messages.active,users.thumb,users.name,users.idFROM`messages`INNERJO

mysql - SQL:在不覆盖行的情况下加入后的 GROUP BY?

我有一张篮球联赛表、一张球队表和一张球员表,如下所示:LEAGUESID|NAME|------------------1|NBA|2|ABA|TEAMS:ID|NAME|LEAGUE_ID------------------------------20|BULLS|121|KNICKS|2PLAYERS:ID|TEAM_ID|FIRST_NAME|LAST_NAME|---------------------------------------------1|21|John|Starks|2|21|Patrick|Ewing|给定一个联赛ID,我想从该联赛的所有球队中检索所有球员的姓

mysql - 提高性能或重新设计 'greatest-n-per-group' mysql 查询

我正在使用MySQL5,目前我有一个查询可以获取我需要的信息,但我觉得它在性能方面可以得到改进。这是我构建的查询(大致遵循thisguide):SELECTd.*,dc.date_change,dc.cwd,h.nameashubFROMlivedata_domASdLEFTJOIN(SELECTdc1.*FROMlivedata_domcablingasdc1LEFTJOINlivedata_domcablingASdc2ONdc1.dom_id=dc2.dom_idANDdc1.date_change编辑:使用ORDERBY+GROUPBY来避免获得多个dom条目,以防“domca

mysql - 为什么递归查询比 join 和 group by 更快?

我正在使用MySQL服务器5.5并具有下一个数据库结构---------------------------------------------------------Table`mydb`.`User`-------------------------------------------------------CREATETABLEIFNOTEXISTS`mydb`.`User`(`id`INTNOTNULL,`Name`VARCHAR(45)NOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDB;--------------------------------