我有下表(订单)
现在我正在尝试制定一个查询来回答以下问题:哪个客户上次购买了商品 x?
例如,我想知道articleId 9011的这个,我的期望是我会得到c1 2023-09-19T01:15
返回。
select customerID, max(orderdate) as d
from orders
where articleIDs like '%9011%'
group by customerID
order by d desc
limit 1;
这个查询正在做我想要的事情。但是还有其他/更好的解决方案吗?
最佳答案
您可以使用FIND_IN_SET
函数搜索以逗号分隔的字符串中的值。
SELECT customerID, MAX(orderdate) AS last_purchase_date
FROM orders
WHERE FIND_IN_SET('9011', REPLACE(articleIDs, ' ', '')) > 0
GROUP BY customerID
ORDER BY last_purchase_date DESC
LIMIT 1;
关于mysql - 如何查询一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77139884/