永远不要将分隔的字符串值存储在数据库中。通过创建多对多表来规范化您的数据。这样您就可以正常查询数据。
话虽如此,您的架构可能看起来像
CREATE TABLE characters
(
char_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(32),
...
) ENGINE = InnoDB;
CREATE TABLE items
(
item_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(6),
...
) ENGINE = InnoDB;
CREATE TABLE item_list
(
char_id INT NOT NULL,
item_id INT NOT NULL,
PRIMARY KEY (char_id, item_id),
FOREIGN KEY (char_id) REFERENCES characters (char_id),
FOREIGN KEY (item_id) REFERENCES items (item_id)
) ENGINE = InnoDB;
如果您以后需要为每个字符生成一个分隔的项目列表,以便您可以explode
在迭代结果集时使用此值,您可以使用这样的查询
SELECT char_id, GROUP_CONCAT(item_id) items
FROM item_list
-- WHERE ...
GROUP BY char_id
这是SQLFiddle演示