草庐IT

orders_part

全部标签

php - MySQL Order by,然后更新 Inner Join

我有一个表categories,其中包含列ID和ParentID我想添加一个名为Level的字段,它说明每个类别在类别树中的级别。我想我找到了我的解决方案,但它是在sql而不是mysql中。所以我一直在将它转换为正确的语法。但是,我认为我错过了一步。所以,这是我的代码:ALTERTABLEcategoriesDROPLevel;ALTERTABLEcategoriesADDLevelINTNULL;UPDATEcategoriesSETLevel=0WHEREParentIDISNULL;UPDATEcategoriesASAINNERJOINcategoriesBONA.Parent

MySQL Order By 非常慢

我知道有很多带有各种解决方案的OrderByQuestions,但我要求的是特定于我在下面设置的数据结构。我有以下2个表设置:表格设置CREATETABLE`record`(`id`INT(11)NOTNULLAUTO_INCREMENT,`file_group_id`INT(11)NOTNULL,`status_id`INT(11)NOTNULL,`title`VARCHAR(3000)NOTNULL,`date_created`DATETIMENOTNULL,`user_created`INT(11)NOTNULL,`publish_date`DATETIMENOTNULL,PRI

mysql - 在连接表列上优化 ORDER BY COALESCE

已编辑:按要求添加完整查询。本质上,我有一张帖子表,一对多地链接到一张转发表,类似于Twitter。我想加载按转发时间(如果存在)或原始帖子时间排序的帖子。但是,使用单个查询的排序过程非常慢(可能是因为COALESCE(x,y)没有充分利用MySQL索引)。两个相关表上的时间列都已编入索引。我的查询看起来像这样。SELECT*FROMPostpLEFTJOINp.repostsON...WHERE...ORDERBYCOALESCE(r.time,p.time)LIMIT0,10更准确地说(伪)因为我使用的是DAL:SELECT*FROMPostpLEFTJOINp.repostsre

mysql - 什么更好 : joins or multiple sub-select statements as part of one query

性能方面,什么更好?如果我的查询中有3或4个join语句或使用嵌入式select语句作为一个查询的一部分从我的数据库中提取相同的信息? 最佳答案 我会说联接更好,因为:它们更易于阅读。您可以更好地控制是要执行内部、左/右外部联接还是完全外部联接不能轻易滥用连接语句来创建可憎的查询使用联接,查询优化器可以更容易创建快速查询(如果内部选择很简单,结果可能相同,但对于更复杂的东西,联接会起作用更好)。嵌入的select只能模拟left/rightouterjoin。有时您无法使用联接来做某事,在这种情况下(并且只有在那时)您将不得不求助于

php - 具有复杂 ORDER BY 的 MySQL 查询

我有以下查询:SELECTid,title,adcontent,adtargetURL,locationpage,locationarg,locationid,displayorder,visible,schedstart,schedstop,created,modified,createdby,modifiedbyFROMadsORDERBYlocationpage,locationarg,locationid,title我需要按以下方式对字段进行排序:按locationpage排序,所有值为“all”的字段在前,然后按升序排序然后通过locationarg将任何NULL或空字符串值

php - JOINed 表上的 GROUP BY 和 ORDER BY - 复杂且缓慢

故事是这样的……我有用户,他们有child。我想每天使用CRONJOB优惠券向在child出生日期间隔内有child的用户发送。我想知道谁将成为获得优惠券的用户以及哪个child。此外,我只想为每个child发送一张优惠券,并且该child必须是用户拥有的最小的child。我有以下表格Children+--------------------------------------+-PrimaryKey:childrenID(int)-Index:userID(int)-Index:childBirthDate(date)+--------------------------------

mysql - 使用 MySQL RAND() 来避免 ORDER BY RAND()

我在每次插入时将RAND()值存储在表中,然后运行以下查询以从表中获取随机行。selectidfromtestwhererandom_value>=RAND()LIMIT5;表中共有456行,但随机值仅选取前20-25条记录。我在上面的查询中运行了很多次,但从未得到id>21。您可以在here中找到查询和结果。 最佳答案 您的RAND()在每次循环后都会发生变化。您需要在SELECT之前修复它:SET@r:=RAND();SELECTid,@rFROMtestWHERErandom_value>=@rLIMIT5但这不是一个好的解决

MySQL Query Order By Clause 花费太多时间

我有一个查询只需要0.001秒,没有按部分排序。但是当我在查询中添加orderby时,它需要大约0.736秒的时间。时间太多了。我已经将该列编入索引,但它没有按预期工作。这里是查询:SELECTDISTINCTn0_.idASid0,n0_.published_atASpublished_at1FROMnewsn0_INNERJOINnews_translationsn1_ONn0_.id=n1_.translatable_idWHERE((n0_.unpublished_atISNOTNULLAND(CURRENT_TIMESTAMP>=n0_.published_atANDCURR

mysql - 添加带有 LIMIT 的 ORDER BY 时,简单的 MySQL 查询被阻塞

我有一张表tb_profilecomments:4,3GiB--总计800万行--InnoDB有3个索引:我运行的查询很简单:SELECT*FROMtb_profilecommentsWHEREprofilecomment_user_id=6430ORDERBYprofilecomment_idDESC在不到1秒的时间内获得结果(16.000多行)。当我现在将LIMIT1,5添加到查询中时,我必须等待超过2分钟才能获得结果。不知道mysql后台发生了什么,为什么它会如此严重地减慢查询速度。当我从查询中删除ORDERBY或LIMIT时,一切正常。按非索引profilecomment_da

mysql - ORDER BY 与 CASE MySQL

我有一个“积分榜”查询,它显示了我所在联赛的统计数据。我试图根据一些条件对查询进行排序。如果球队积分排名1-25,则按胜场、积分排序如果球队排名在前25名之外(积分第26至42名),则按积分排序。我能描述的最好方式是它应该像两个表一样工作。排名(1-25)的团队应该放在一起排序,排名(26-42)的团队应该放在一起排序。这是我的查询。SELECTm.TeamASteam,SUM(r.points)ASpoints,SUM(CASEWHENrank=1THEN1ELSE0END)ASWins,SUM(CASEWHENrank25THENpointsENDDESC,pointsDESC;由