我有一张有14000000个帖子的表格。当我使用select语句查询表时,按照postings表的日期时间字段排序,MySQL总是使用文件排序,导致查询时间非常慢(>3秒)。以下是story表的模式(简化):
+---------------------+---------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra
在MySQL中,这两个查询之间有区别吗?
SELECT * FROM .... ORDER BY Created,Id DESC
和
SELECT * FROM .... ORDER BY Created DESC, Id DESC
所需的行为:按"Created“(时间戳)排序(降序),但当两个项目具有相同的"Created”值时,则退回到使用Id排序( desc )。
我有一个有三列和几百万行数据的表。
sensor_data
sensor_id int PK
date datetime PK,
data decimal (10,3)
此查询返回传感器4的最新日期,但返回传感器4的最老数据:
select max(date), data
from sensor_data
where sensor_id = 4;
这些查询返回数据的正确值:
select date, data
from sensor_data
where sensor_id = 4
and date = (select max(date) from sensor_data where sens
我在数据库中有如下发布日期:
release_date
2010-12-02 00:00:00
我必须按发布日期从数据订单中得到50行数据。有人能告诉我如何在mysql sql查询中实现这一点吗?
SELECT data.content,item.value
FROM contents
AS data
JOIN items
AS item
WHERE data.id=item.content_id
ORDER BY data.release_date
请帮助,任何想法都会非常感谢。
编辑
我不是在问如何限制它,但是我的问题是这个查询使我的脚本永远运行。抱歉之前没把这件事清除掉。
嗨,我有下面的查询,在开始日期表中返回下一个开始日期的数据,我想做的是拉下2个开始日期的数据。有谁能帮帮我吗?我已经编辑以显示我有问题的特定部分,而不是提供整个查询,请记住这是一个子查询。
(a1.expstartdate = (select min(startdate)
from cstreprts.dbo.startdates
where startdate+15 > @asofdate and sycampusid = a1.sycampusid)
or a1.startdate = (select min(startdate)
from cstreprts.dbo.
q1:给定表: ID、日期、状态。编写一个SQL查询,它接收@ID @Date,并检索具有该id的人在该日期的状态,如果该日期不存在,则检索不晚于该@date的最后状态。
我已经尝试为上述问题编写查询。我非常感谢你的评论:
SELECT TOP (1) status from MyTable AS T
WHERE T.Date <= @date && T.id = @id
ORDER BY T.Date
谢谢你们
📷
这里我有一些数据。我想以快速方式显示具有fav=1的记录,然后按升序(日期)显示日期大于当前日期的数据,最后按降序(日期)显示其余的记录。我编写了一个查询,但它没有像预期的那样工作:
(SELECT *
FROM `test`
WHERE fav = 1
ORDER BY date DESC)
UNION
(SELECT *
FROM `test`
WHERE fav = 0
AND date>DATE(NOW())
ORDER BY date ASC)
UNION
(SELECT *
FROM `test`
WHERE fav = 0
我有一个表test,列为id、月、年。我需要在一个查询中获取最大月份和最大年数的id。
例如
id month year
1 10 2012
2 9 2013
我的结果应该是id 2。
首先检查基于最大月份的年份,根据这些,我需要获得id
我在MySQL中给出了这样的查询
select id from book where MAX(month) and MAX(year);
其产生误差
我在sqlite数据库里有项目。每个项目都有一个日期,格式是:YYYY.当然,几个项目可以有相同的日期。
此外,这些项具有布尔值"new“。我希望使用sql查询按日期对这些项进行排序,例如:
ORDER BY date DESC
这很简单。现在,我想将布尔值新设置为True的项提取出来。我想要的是,如果两个项目有相同的日期,但一个是新的,另一个不是,必须首先归还新的。
现在,如果两个项目有相同的日期,它们将被随机排序(或者根据它们的主索引键排序,我不知道)。
我不知道我是不是很清楚。
有办法吗?
嗨,我有这个没有限制的mysql语句,所以它将以升序获得第一行,但我也想获得第二行的标题
$res = mysql_query("select * from tas where id='{$m_id}' ");
之后,我可以获取并获得第一个输出,而不会出现任何问题。之前我需要获取id,所以我使用了以下代码
$nidf=$m_id-1;
但现在我需要以前的id.table组成的标题,如果id,标题,视图等.i知道它可以很容易地通过这个查询完成
$res2 = mysql_query("select * from tas where i
我有一张MySQL桌。该表没有时间戳,但我想删除在某个日期之后输入的所有记录。我试过使用created_at,但没有成功。
DELETE FROM table_name where created_at > '2021-02-09 00:00:00';
我的印象是,MySQL保持了一个插入日期,我可以在delete语句中利用这个日期。
编辑:
我没有create_at专栏,所以我做了修改我的问题。是否可以删除最后插入的100条记录。我有这样一个查询,它准确地选择了最后100条记录,但现在我如何删除它们:
SELECT * FROM (SELECT * FROM table
我有办法在ORDER BY FIELD中做MongoDB吗?
在Mysql中有如下内容:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(priority, "core", "board", "other")
这能在MongoDB中实现吗?
类似的查询在:中得到回答。
这使用聚合函数。我想要的是没有集合和有发现的东西。
我目前有一个名为cc_site的表,在这个表中,我存储来自不同ip地址的pings的结果。
该表有四个字段:
自动增量ID字段
日期(包括时间)
IP地址
状态(用于确定ping是否成功)。
我正在尝试创建一个查询,该查询将根据单个ip地址的日期字段提供最新结果。我目前使用的代码如下所示,但它不能工作,除非我在查询中使用的IP是表中的最新条目。
$query = "SELECT *
FROM cc_site
WHERE ip='$host'
AND Date IN (
我必须数一数所有将task_status设置为“履行”的命令。如果一个订单是“成功”,或者五个状态为“尝试”的订单,那么一个特定的任务将被设置为“完成”。我编写了一个查询,它使用最大日期来选择正确的订单。我的问题是,尽管实际的原因是“成功”顺序,但查询有时会将“尝试”计算为“完全填充”任务的原因(因为表中显示的日期相同)。我需要一个查询,它更喜欢订单的“成功”状态(如果存在的话),而不是“尝试”状态。
感谢您的帮助和建议!
这是我当前的查询和两个日期相似的订单的示例:
select *,
case
when task_status = 'FULFILLED
这可能很简单..。如何通过这个查询实现我想要的:
delete from posts where id not in
(SELECT id FROM posts order by timestamp desc limit 0, 15)
所以,简单地说,我想删除最新的15篇文章。
当我尝试这个查询时,我就明白了。
MySQL还不支持“限制”& IN/ALL/ANY/SOME子查询
编辑
mySQL Server version: 5.5.8
mySQL Client version: mysqlnd 5.0.7-dev - 091210 - $Revision: 304625 $
错
SELECT
AI_636.PARENT_ID AS PART,
MAX(b.AP_1036) AS ESTEND,
MAX(a.AP_3222) AS ACTEND
FROM
AI_636
LEFT OUTER JOIN AI_665 a
ON
(
a.AP_1033 = AI_636.PARENT_ID
AND SUBSTR(a.AP_1028, 1, 4) >= '2000'
AND a.AP_1030 NOT IN ('994')
AND
(