[英]Using Dynamic SQL in MySQL (Sub-Query with Result of Query)
我不确定这是否可能,但是我知道是否可以,在这里我会找到答案的stackoverflow社区。 我基本上是在尝试预处理一些数据,以便加快我的应用程序的速度。 这是我要执行的操作的一个示例:
SELECT id
FROM data AS data1
WHERE rangeVal < (SELECT rangeVal FROM data WHERE id = data1.id - 1)
AND actiondate >= '1980-05-18'
AND actiondate <= '2012-05-18'
ORDER BY actiondate DESC
本质上,仅当第二天的rangeVal小于rangeVal时,我才尝试获取数据的ID。
任何帮助或指向正确方向的方向将不胜感激!
如果您的工作日是递增的,并且每天都有一行,那么您可以尝试使用DATE_SUB()
加入该表,而不必试图依靠从增量ID中减去,由于行删除和其他问题,增量ID可能非常不可靠。或DATE_ADD()
作为加入条件:
SELECT
id
FROM
data data_today
/* JOIN on a date manipulation */
JOIN data data_tomorrow ON DATE_ADD(data_today.actiondate, INTERVAL 1 DAY) = data_tomorrow.action_date
WHERE
data_today.rangeVal < data_tomorrow.rangeval
AND data_today.actiondate BETWEEN '1980-05-18' AND '2012-05-18'
子查询也很好
SELECT id
FROM data AS data1
WHERE rangeVal <
(
SELECT rangeVal FROM data d2 WHERE d2.id = data1.id AND d2.actiondate=
DATE_ADD(d2.action_date, INTERVAL 1 DAY)
)
AND actiondate BETWEEN '1980-05-18' AND '2012-05-18'
ORDER BY actiondate DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.