草庐IT

order_column

全部标签

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;由

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 - 使用 ORDER BY 和 CASE 帮助理解这个 mySQL 查询

我试图理解这个mySQL查询。它应该使用搜索关键字“brownfoxlazydog”搜索表“items”,并根据其相关性或它在记录中出现的次数返回结果。SELECT*FROM`items`WHERE`description`LIKE'quick'AND(`description`LIKE'brown'OR`description`LIKE'fox'OR`description`LIKE'lazy'OR`description`LIKE'dog')ORDERBY((CASEWHEN`description`LIKE'brown'THEN1ELSE0END)+(CASEWHEN`descr

mysql - ORDER BY NULL 比 ORDER BY 列慢

根据MySQLdocumentation,在GROUPBY之后添加ORDERBYNULL应该“避免对结果进行排序的开销”。如果是这样,为什么下面的查询慢了大约5倍SELECTCOUNT(*)advert_count,category.nameFROMadvertLEFTJOINcategoryONadvert.category_id=category.category_idWHERE(advert.state_id=2)GROUPBYadvert.category_idORDERBYNULLLIMIT5不是用ORDERBYadvert_count查询吗?SELECTCOUNT(*)ad

MySQL数据库结构: more columns or more rows

我收集了人们如何在表格中用类别标记主题,例如:ID|topic_id|votes_Category_1|votes_Category_2|..........|votes_Category_12出于历史原因,我每小时都会转储此表。假设表包含200万行。每小时转储到历史表中。如果我想添加列Category_13,这个解决方案不灵活,所以我在考虑这个:ID|topic_id|Category_id|vote_count此解决方案将为每个主题创建12行,其结构更好且更灵活,但我必须每小时转储2400万行。我需要每个类别中最好的10个主题!我想知道在案例2中使用Max投票(其中category

php - 使用 where 和 order by 语句时从数据库获取行号

好的,我已经尝试了几种方法来做到这一点,但都没有用,所以我没有代码可以展示。但我会尽我所能解释这一点。我有一个比赛脚本,我想添加一行,向用户显示他们在当前获胜者列表中的位置。所以我希望表格看起来像这样。-----------------------------------------|Place|User|Prize|Completed||1|Someuser1|$5.00|5||2|Someuser2|$2.50|3||3|Someuser3|$1.25|2||20|You|---|1|-----------------------------------------我拥有所谓的so

mysql - 运行查询 "SELECT * FROM table_name WHERE column_name;"时发生了什么?

我有一个包含多个列的数据库表。其中一列旨在用作bool值设置,如TINYINT(1)DEFAULT0。我无意中发现,如果你运行这个查询SELECT*FROMtable_nameWHEREcolumn_name;它返回column_name=1的行。我很想知道MySql用来处理这个查询的逻辑。 最佳答案 正如文档在“选择语法”中所说的那样,(http://dev.mysql.com/doc/refman/5.1/en/select.html)where_conditionisanexpressionthatevaluatestotru

mysql - SQL ORDER BY 想法

我有两张table。上传者-id、名称、图标、View视频-id、上传者、视频、观看次数上传者列用作视频上传者的引用。因此,我可以使用sum()函数来计算每个用户从他的所有视频中总共获得的观看次数。现在我想按desc总观看次数对这些用户进行排序。我该怎么做?这是我目前所拥有的代码...//Retrievedatafromthedatabase$fkbar=mysql_query("SELECT*FROMfreaks");while($fkrow=mysql_fetch_array($fkbar))//EchoThemeTemplateonpages{$frkid=$fkrow['id'

mysql - 收到错误 1503 : A primary key must include all columns in the table's partitioning function

我有一个像这样的表结构-CREATETABLE`cdr`(`id`bigint(20)NOTNULLAUTO_INCREMENT,`dataPacketDownLink`bigint(20)DEFAULTNULL,`dataPacketUpLink`bigint(20)DEFAULTNULL,`dataPlanEndTime`datetimeDEFAULTNULL,`dataPlanStartTime`datetimeDEFAULTNULL,`dataVolumeDownLink`bigint(20)DEFAULTNULL,`dataVolumeUpLink`bigint(20)DEF