草庐IT

order_column

全部标签

php - mysql order by rand() 性能问题及解决方案

我使用orderbyrand()从数据库中生成随机行,没有任何问题,但我意识到随着数据库大小的增加,这个rand()导致服务器负载过重,所以我正在寻找替代方法,我尝试通过生成使用phprand()函数的一个随机数并将其作为id放入mysql查询中,它非常非常快,因为mysql知道行id但问题是在我的表中所有数字都不可用。例如1,2,5,9,12之类的。如果phprand()生成数字3,4等,则查询将为空白,因为没有数字3、4等的id。从php生成随机数的最佳方法是什么,但它应该在该表中生成可用编号,因此它必须检查该表。请告知。$id23=rand(1,100000000);SELECT

MySQL alter table add column with primary key 语法错误

我正在尝试向我的其中一个数据库表中添加一列,但出现语法错误我似乎找不到问题...我当前的数据库表如下所示:component+tag_id+item_id------------|----------|-----------com_content|23|2642com_content|26|3481com_content|35|1868com_content|85|5827com_content|89|7882我希望它看起来像这样,其中“id”是自动递增的,所有列都是主键的一部分id+component+tag_id+item_id-----|--------------|------

MySQL插入错误: ER_BAD_FIELD_ERROR: Unknown column '2525' in 'field list'

varconvID=2525;varcontactUsername='blabla';varuserId=100;varcontactId=200;varsql="INSERTINTOcontacts(FK_OWNERID,FK_USERID,FC_CONTACTNAME,`CONVERSATION_ID`)VALUES("+mysql.escape(userId)+","+mysql.escape(contactId)+","+mysql.escape(contactUsername)+","+convID+"),("+mysql.escape(contactId)+","+mysq

mysql - SQL - 查询字符串是否包含 Column 中的部分值

我正在尝试编写一个查询来查找字符串是否包含列中值的一部分(不要与查找列是否包含字符串的一部分的查询混淆)。例如,我在表中有一列包含值ABC,XYZ如果我给搜索字符串ABCDEFG然后我希望显示带有ABC的行。如果我的搜索字符串是XYZDSDS那么应该显示值为XYZ的行 最佳答案 答案是“使用LIKE”。请参阅文档:https://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html你可以WHERE'string'LIKECONCAT(column,'%')因

mysql - 在 MySQL 中使用空间 POINT 类型时的 Lon/Lat Order

在MySQL中设置POINT时正确的顺序是什么?即使是SO问题中的答案也有所不同:Movinglat/lontextcolumnsintoa'point'typecolumn是吗POINT(latlon)或POINT(lonlat)据我所知,它应该是第一个版本(经纬度),因为POINT以x和y为参数,但我找不到确切的证据。 最佳答案 正如人们在这里看到的https://stackoverflow.com/a/5757054/1393681顺序是(lonlat)。lon基本上是y轴,lat是x,如果我看我的地球仪,但是lon是沿着x轴

mysql - MYSQL 中的 ORDER BY 和 =(等于)

我有一个问题,我遇到了一段有趣的代码。在MySQL语句中有这样的东西:{...}ORDERBYwhatever=3ASC,whatever=4ASC,whatever=6ASC{...}是不是表示会这样排序?:thing|whatever15|11|35|38|32|43|46|44|67|69|614|921|1018|9...它似乎只对等于3,4和6的任何东西进行排序,其余的是无序的......这是正确/受支持的语法吗? 最佳答案 whatever=3计算为bool值,0为false,1为true。因为是升序排列的,不满足条件的

php - 我需要在 ORDER BY 字段上添加索引吗?

我有这样的查询$query="SELECT*FROMtbl_commentsWHEREid=222ORDERBYcomment_time";我需要在comment_time字段上添加索引吗?另外,如果我想获取两个日期之间的数据,那么应该如何建立索引呢? 最佳答案 是的,在使用ORDERBY时,索引会帮助你。因为INDEX是一种排序的数据结构,所以请求会执行得更快。看这个例子:表test2有3行。我在orderby之后使用了LIMIT来显示执行的差异。DROPTABLEIFEXISTS`test2`;CREATETABLE`test2

mysql - ruby rails : Find the record with lowest value of a specific column

我正在尝试在数据库中查找其日期时间列的值最低的记录。简单来说,我想找到时间最早的记录。我可以使用minimum来找到最小值,但这只会返回值本身,而不是整个记录。我想我可以创建另一个查询,但我想知道是否有更有效的方法来执行此操作。 最佳答案 这会起作用:earliest=Model.first(:order=>'columnasc')—Model是模型类的名称,column是日期时间列的名称。它将生成此SQL语句:SELECT*FROM`Model`ORDERBYcolumnascLIMIT1

mysql - magento 表 "sales_flat_order"字段 "protect_code"说明

我们正在研究magento数据库和表。Magento似乎在表sales_flat_order字段protect_code中编写代码来定义是否已经有发票或已经完成的装运。它看起来像01b335或a0a243但是没有key可以理解这个保护码是什么意思。是否有解释这些代码的含义以及它们是如何生成的? 最佳答案 它是在哪里产生的?如果您查看app/code/core/Mage/Sales/Model/Order.php中的2052行,您会发现以下内容:$this->setData('protect_code',substr(md5(uniq

sql - Order By 字段等于特定值?

假设我有这个MySQL查询:SELECT*FROMAWHEREx='abc'ORy=0;我如何确定行的优先级,以便在x='abc'的情况下首先订购?如果y=0但是x!='abc',我希望这些行出现在x='abc'的情况之后.这可以用一个简单的ORDERBY子句来完成吗?谢谢! 最佳答案 SELECT*FROMAWHEREx='abc'ORy=0orderbycasewhenx='abc'then0else1end; 关于sql-OrderBy字段等于特定值?,我们在StackOverfl