У меня есть таблица с сотнями тысяч строк, назначенная пользователю. например:MySQL: удалите из таблицы все, кроме 20 строк?
itemid | userid | etc
1 | 1 | etc
2 | 1 | etc
3 | 1 | etc
4 | 3 | etc
5 | 3 | etc
6 | 3 | etc
etc | etc | etc
Пользователь может иметь любое количество предметов, назначенных ему или ей. То есть Любое число от 0 до бесконечности. Моя проблема заключается в том, что я хочу, чтобы SQL-запрос удалял все элементы для каждого пользователя, но сохранил 20. Если у пользователя меньше 20, например, только 10 назначенных предметов, он должен хранить все 10.
Как я могу сделай это?
ОБНОВЛЕНИЕ
Если пользователь имеет 50 пунктов, с идентификаторами 1 - 50, он должен возвратить детали 30 - 50. Другими словами, последние 20 вставленные элементы для этого пользователя.
Wont простая 'DELETE * FROM table WHERE itemid> 20' work? – Daanvn
Есть ли вид товаров? Вы хотите сохранить 20 случайных предметов или 20 последних вставленных предметов? – Marcassin
@Daanvn Я думал то же самое, но, я думаю, это не будет - см. Itemid выглядит как столбец AI – MythThrazz