在许多评论中,通常有一个按日期、有用性等进行排序的功能。本质上,这些工作是通过查询新的MySQL行来完成的,对吗?
例如:
$sql = "SELECT * FROM TABLE ORDER BY TimeAdded"
$sql = "SELECT * FROM TABLE ORDER BY Helpfulness"
还是会有更好的方法去做呢?
第二,为评论制作网页。是否就像在MySQL查询中使用循环和限制来显示每页10个结果一样简单?
编辑:对于一个巨大的评论站点,让MySQL来处理所有的排序是理想的吗?
我想要一个查询,对一个字段进行全文搜索,然后对另一个字段进行排序(想象按发布日期搜索一些文本文档和顺序)。该表大约有17M行,它们在日期上大致均匀分布。这将在webapp请求/响应周期中使用,因此查询最多必须在200 is内完成。
按示意图:
SELECT * FROM table WHERE MATCH(text) AGAINST('query') ORDER BY date=my_date DESC LIMIT 10;
一种可能是在文本字段上有一个全文索引,在发布日期有一个btree:
ALTER TABLE table ADD FULLTEXT index_name(te
我正在尝试优化我的mysql查询,以避免“使用临时的,使用文件排序”。我需要一些帮助。首先,下面是解释
下面是查询
select pf.*,m.login,m.avatar
from profile_friends pf, members m
where pf.friend_id = m.id and pf.member_id = 16586
order by m.lastLogin desc
limit 0,24;
mysql> EXPLAIN select pf.*,m.login,m.avatar from profile_friends pf, members m
我试图将mysql中的时间戳表单转换为日期,并在此日期之前订购。
$query = mysql_query("SELECT *,DATE_FORMAT(banfrom ,'%d/%c/%Y') as time FROM ab_list ORDER BY time DESC LIMIT 0,50");
它没有显示我试图这样做的日期:
while($info = mysql_fetch_array($query))
{
echo $info['time'];
}
在这个日期之前,我怎样才能在回声中显示日期?
谢谢各位
我面临着显示来自MySQL数据库的数据的问题。我有一个包含所有用户请求的格式的表:
| TIMESTAMP Time / +INDEX | Some other params |
我希望将这些数据显示在我的网站上,作为一个表,其中包含每天的请求数。
查询非常简单:
SELECT DATE(Time) as D, COUNT(*) as S FROM Stats GROUP BY D ORDER BY D DESC
但是当我想解释这件事的时候,我会发疯的:
Using index; **Using temporary; Using filesort**
从MySQL文档中可以看到,它为硬盘上的查
我有带有注释的数据库(物化路径)(Mysql)。如果我选择所有的逗号"select * from comm,其中post_id=10 order by path ASC“,结果我会收到按路径排序的帖子的注释,上面是旧的日期,底部是更新的。
那么,是否有一种方法可以在顶部选择更新的,比如在disqus中呢?如果我只是“按路径订购DESC”--而不是支路被颠倒显示--那不是我想要的。所以我需要按日期订购(顶上是新的通讯)和路径。谢谢!
链接到更大的pic
我有两个表,一个包含产品(produits),一个包含销售(ventes),其中包含我正在执行内部连接的数百万条记录。这真的很慢。
下面是一个示例查询。WHERE子句可以包含更多描述产品的字段(upc、category等)。取决于用户想要什么。
use mysql_reception;
SELECT p.upc, p.description, sum(v.quantity)
FROM produits p inner join ventes v on p.upc = v.upc
WHERE v.date > '2021-01-01' and date <
我有一个包含15,000,000条记录的表。这些记录可以基于某些匹配字段相互关联(通常单个组中的最大值为3或4)。每条记录也有一个与之相关联的日期,但是该日期不一定与它被加载到表中的日期/顺序相关。
这些记录定期用于更新数据库中的其他记录。我只关心单个组中的最新记录,但在1500万条记录(正在更新另外1000万条记录)中,我希望确保忽略其他所有记录。如果最新的记录已经有了"updated“标志,我还想跳过更新。
我一直在使用这样的a视图来收集每个组中的最新记录:
SELECT a, b, c, max(scan.timestamp) AS latest_scan
FROM scan
G
我使用id和日期连接表本身,以便执行如下操作:SELET t1.id, t1.date, SUM(whatwever) FROM analytics.my_summary_by_day t1 LEFT JOIN analytics.my_summary_by_day t2 ON t1.id = t2.id AND DATEDIFF(DAY,t1.date,t2.date)>=-30 AND DATEDIFF(DAY,t1.date,t2.date)<0
我是否应该像这样创建my_summary_table,以便更好地处理上面的特定查询:
我有一个包含两个整数列的主键的表。我在这张桌子上存了2亿行。我的程序需要获得由主键的列按相同顺序排序的完整表。
所以,我的查询看起来像Select * from MYTABLE order by PK1,PK2;
我注意到,查询没有立即发送数据,而是在“排序结果”状态下花费了大量时间。我认为mysql将使用主键索引以所需的顺序直接访问数据。但是,它似乎没有顺序地扫描它,然后对数据进行排序。
是否有可能改变行为并提高查询的效率?
备注:我尝试过使用MySQL5.5和mariadb10.2。
以下是一些有用的信息(我试图用索引列和非索引列解释一些订单,并给出相同的结果)。
mysql> sh
我是CouchDb的新手。我必须按日期筛选记录(日期必须在两个值之间),并按名称或日期等对数据进行排序(这取决于用户在表中的选择)。在MySQL中,它看起来像
SELECT * FROM table WHERE date > "2015-01-01" AND date < "2015-08-01" ORDER BY name/date/email ASC/DESC
我不知道我是否可以用一个视图来解决所有这些问题。下面是我的地图示例:
function(doc) {
emit(
[doc.date, doc.name, doc.
您好,我有一个关于当日期不是以默认的mysql格式存储时使用大于运算符的问题。我有一个以dd/mm/yyyy格式存储日期的数据库。我试着用合适的mysql格式存储它们,但过了一段时间我放弃了。现在,我有一个表,其中包含一系列日期,格式为dd/mm/yyyy,并且我希望选择晚于所选日期的日期
select * from table where date>'25/05/2015'
当我这样做的时候,我会得到这样的结果
date
27/05/2015
28/04/2015
我做错了什么?我能做些什么来修复它呢?
我试图优化以下mysql查询:
SET lc_time_names = 'fr_FR';
SET @j = '{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[1.31321,48.024146],[1.63456,48.024146],[1.63456,48.150283],[1.31321,48.150283],[1.31321,48.024146
我使用mysql Ver 14.14 Distrib 5.5.44, for debian-linux-gnu (x86_64) using readline 6.3
我有由order列排序的行。
结果,很多时候,订单数是相同的,比如说1。但是结果是以固定的顺序返回的。
SELECT * from mytable ORDER BY fooOrder;
如果fooOrder总是1,会返回排序的结果吗?
很明显有个命令,但我不知道是哪一个。
我想在MYSQL中对日期进行排序,使将来的日期首先按ASC顺序排序,然后再按DESC顺序排列旧日期。这里是我以前所做的查询,但是日期类型(将来和旧的)都是按ASC顺序排序的。我怎么才能解决这个问题?
SELECT id, end_date FROM employee
ORDER BY CASE WHEN DATE(date) > DATE(NOW())
THEN 0
ELSE 1 END, date ASC
从MySQL表中选择列时,与列在表中的顺序相比,选择列的顺序是否会影响性能(不考虑可能覆盖列的索引)?
例如,您有一个包含行uid、name、bday的表,并且具有以下查询。
SELECT uid, name, bday FROM table
MySQL是否会以不同的方式看待以下查询,从而导致任何类型的性能影响?
SELECT uid, bday, name FROM table
首先,我为这个糟糕的题目道歉,我不能很好地解释我的问题是什么,但我确信一个有经验的MySQL用户会知道的。
在查询数据库以检索特定的客户集之后,它们最初按照“已完成”列进行排序,值为"0“和"1”。
我想按交货日期ASC对所有值为"0“的客户进行排序,并按交货日期DESC对所有值为"1”的客户进行排序。
以下是我第一次也是唯一一次失败的尝试:
mysql_query("SELECT * FROM users WHERE (completed='0' ORDER BY delivery ASC) AND (completed='1&
如何对表中列中的日期进行排序?(时间戳)
请注意,我不是要求按日期对行进行排序,而是询问如何在记录中交换日期,以便所有日期都按正确的顺序排列;而不需要更改任何其他内容。
例如:
id foo bar
1 A 03-03-2030
2 B 01-01-2010
3 C 02-02-2020
变成..。
id foo bar
1 A 01-01-2010
2 B 02-02-2020
3 C 03-03-2030
首选解
我正在尝试查询一个表,以查找与几个特定日期匹配的所有行。日期不是连续的,因此不希望返回整个日期范围的数据。具体日期的数量可能相当大,有几百个。Date字段是索引的,所以我想使用它。
将Date字段转换为字符串并查询字符串比较会让人感到有些懒惰/不称职,并放弃任何索引。像这样的东西(下面)工作正常,但是我关心性能和扫描表:
SELECT Date,Time,Open,High,Low,Close,Volume FROM minuteBarTable
WHERE DATE(Date) IN ('2004-07-13','2011-09-01','2007-
我正在尝试从两个mysql表中获取数据,并按日期排列它们。这两个表涉及收入和支出。我试图实现的是首先显示来自收入表的数据,然后显示支出表中日期为15/04/2014的数据,然后再次循环下一个日期,并显示与收入表中的16/04/14相关的数据,然后显示支出表中的数据。目前的代码循环了所有次数的no。收入表中条目的数量。如何纠正这一点?代码如下:
<?php
include "connection.php";
?>
<table width="100%" border="1" align="center" cel
不知道这为什么只返回第一个结果。日期是日期格式,而不是日期时间。我只是从使用甲骨文开始使用MySQL,这是我的想法。
SELECT *,
CASE d_date
WHEN max(d_date) THEN 'Today'
WHEN date_add(max(d_date), interval -1 day) THEN 'Yesterday'
ELSE 'other'
END dateID
FROM mike.Tble
我有一个events_table事件列表,我以yyyy-mm-dd格式存储事件日期。我需要按日期分类:
(SELECT * from events_table ORDER BY date DESC)
但是,如果我有超过一个事件在类似的日期,排序工作错误。我想按日期和id进行排序,以查看正确的顺序(首先是新事件)。
我知道好的做法是使用timestamp,但是由于用户可以介绍一两天前的事件信息,而且这种方法在我的情况下行不通。
我们的MySQL(Percona Server)数据库有一个包含1000万行的大表,有很多比40秒更长的慢查询:
SELECT col1, Seller, col3, col4, Id, col5
FROM table1
WHERE Seller = 346761
AND col1 IN (2, 3, 4)
AND col3 = 1
AND col4 NOT IN (5,6,7)
ORDER BY Id DESC
LIMIT 0, 20;
我在Seller、col1、col3、col4上创建了索引。这些索引是单独的,而不