我有這樣的查詢:是否可以限制WHERE col IN(...)語句中每個值的行數?
SELECT * FROM table WHERE user_id IN (val_1, val_2, ..., val_n) ORDER BY timestamp DESC LIMIT 15;
正如我在以前的帖子已經探索有沒有辦法讓這個使用了排序的指標。
但是有沒有什麼辦法來限制MySql爲IN(...)
語句中的每個值在臨時表中存儲的行數?
換句話說,告訴db獲取其中user_id = value_1的x行,然後從其中user_id = value_2的位置獲取x行,依此類推。
我需要限制這一點,因爲我不希望數據庫對太多的行進行排序,我只需要每個用戶的最新條目。
我已經解決了這個加入AND WHERE count <= m
和我確保用戶的最近M個條目有一個數< = m,而這拖慢我係統項是由時,我不得不增加count
M上-1個條目,並在最老的一個上將計數設置爲> m。
使用FULL JOIN
不是一個選項。它做我想要的,但所有連接的執行速度非常慢(我需要50多個連接)。