[英]selecting previous id with where condition in mysql
我正在使用以下查询根据日期之间的某些时间来选择先前的股票,但是如果自动递增的ID顺序不正确(删除某些记录时,它具有间隔),则以下查询将失败,
SELECT in_stock, price
FROM $tablename
WHERE id=(SELECT (id-1)
FROM $tablename
WHERE sale_date BETWEEN '$from_date' AND '$to_date'
ORDER BY entered_date ASC
LIMIT 1)
帮助我选择之前的in_stock
如果ID顺序不正确,则应使用以下内容:
SELECT in_stock, price
FROM $tablename
WHERE entered_date=(
SELECT MAX(entered_date) as max_date
FROM $tablename
WHERE
entered_date<(SELECT MIN(entered_date) as min_date
FROM $tablename
WHERE
sale_date BETWEEN '$from_date' AND '$to_date')
)
这样有效
SELECT in_stock, price
FROM $tablename
WHERE id < (SELECT min(id)
FROM $tablename
WHERE sale_date BETWEEN '$from_date' AND '$to_date') ORDER BY id DESC LIMIT 1
尝试这个
SELECT in_stock, price
FROM $tablename
WHERE id=(SELECT (SELECT MAX(id)
FROM $tablename
WHERE id < ( SELECT MAX(id)
FROM $tablename ))
FROM $tablename
WHERE sale_date BETWEEN '$from_date' AND '$to_date'
ORDER BY entered_date ASC
LIMIT 1)
SELECT in_stock,price
FROM $tablename
WHERE id=(SELECT max(id) > 1
FROM $tablename
WHERE sale_date BETWEEN '$from_date' AND '$to_date'
ORDER BY entered_date ASC
LIMIT 1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.