我试图将不同的数字(如“10 11 12”)插入 MySQL 字段(数字来自 PHP),但是当我进行查询时,该字段只获取第一个数字。
例如,我这样做:
UPDATE profile SET subcategory = '10 11 12' WHERE userId = 1 LIMIT 1
数据库只记录“10”。
有什么办法吗?
最佳答案
发生这种情况是因为你正在更新一个数字,可能是一个整数,所以 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) 更新类别。
我建议您使用属于多个子类别的用户,这样您就必须创建另一个表。例如:一个名为 subcategories 的表,至少有两个字段: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() 来自动插入多个值。
您也可以在配置文件表中有一个非唯一的 userId,每个用户子类别都有一个条目,但这会使事情复杂化。
希望对你有帮助
关于php - 将数字插入单个字段 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19117367/