草庐IT

admin_order_field

全部标签

条件为 "field IS NULL"的 Mysql 索引

我有一个包含DATETIME字段“deleted_at”的表,我希望这种请求能够快速执行:SELECT*FROMtableWHEREdeleted_atISNULL是否可以索引字段的“空性”而不是索引我字段的每个日期时间值? 最佳答案 您可以indexnullablecolumns,但是只有在对空值有很好的选择性时才会使用索引,即只有一小部分数据实际上是空值。不幸的是,MySqldoesn'tsupportfiltered/partialindexes像SqlServer,它允许您只为NULL行建立索引。所以TL;DR,如果dele

python Django : Use dumpdata for single model with m2m field and mySql

我有一个模型Lecture,里面有一些m2m字段,我想使用dumpdata转储它。但是每当我调用pythonmanage.pydumpdatacms.lecture时,我都会收到以下错误CommandError:Unabletoserializedatabase:'NoneType'objecthasnoattribute'_meta'.这是因为m2m-field还是这里可能有什么问题?我的数据库是MySql(5.6.12版),我使用的是Django1.5.1。我之前使用过Sqlite,它运行良好。编辑-解决方案:更新django-taggit 最佳答案

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

php - Yii 2 : virtual fields in ActiveRecords

我使用MySQL和Yii2。在数据库中存在表'Regions'withcolumn'coordinates'。此列的类型为点。在SQL中我可以这样写:"SELECTX(coordinates)asx,Y(coordinates)asy"和"INSERTINTORegionsSETcoordinates=PointFromText('POINT(".$x."".$y.")')".但我不知道如何制作ActiveRecord模型。我想要这个(数据库不变):$item=Regions::findOne(1);echo$item->x."".$item->y;$item->x=$new_x;$i

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

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