Это произойдет потому, что вы обновляете число, вероятно, целое число, поэтому MySQL сделать работу только для первого номера.
Если вы сделаете это:
UPDATE profile SET subcategory = 10 WHERE userId = 1 LIMIT 1
UPDATE profile SET subcategory = 11 WHERE userId = 1 LIMIT 1
UPDATE profile SET subcategory = 12 WHERE userId = 1 LIMIT 1
Вы просто обновить категорию с третьим значением (12).
Я предлагаю вам пользователей, принадлежащих к нескольким подкатегориям, поэтому вам придется создать другую таблицу. Например: таблица подкатегорий с по меньшей мере двумя полями: userId и subcategoryId. И тогда вы могли бы сделать что-то вроде этого:
DELETE FROM subcategories WHERE userId=1
INSERT INTO subcategories (userId, subcategory) VALUES (1,10)
INSERT INTO subcategories (userId, subcategory) VALUES (1,11)
INSERT INTO subcategories (userId, subcategory) VALUES (1,12)
Первая строка (удалить) используется только для обновления подкатегорий пользователя, сначала удалить все старые подкатегорий для пользователя, а затем вставить новые. В PHP вы можете использовать foreach() для автоматизации вставки нескольких значений.
У вас также может быть уникальный пользовательский идентификатор в профилях таблицы с записью для каждой подкатегории пользователя, но это усложнит ситуацию.
Надеюсь, это могло бы вам помочь
Это звучит как проблема XY. Расскажите, пожалуйста, о X.http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – Halcyon
Узнайте о присоединениях. Вам нужен другой стол. –
Насколько велика область? Похоже, может быть усечение? – asantaballa