我想将一些数字集作为文件 ID 存储在一列中,并在它们之后放置一个“,”以使它们分开。比如:8546, 5654, 2311, 7544, 6565, .... 但是在检索它们时,我想分别获取每个 ID。可能吗?
5 回答
将数据存储在数据库列(mysql)中,并使用php中的explode函数从列中读取集合。但是,像这样存储数据并不是一个好主意,您必须将每个数据存储在单独的列中,您可以使用父表的 forain 键创建另一个表并将这些 id 存储在该表上。
您可能应该有另一个带有id
s 的表,然后您可以从该表和该表中选择 id,如果您只想使用 MySQL 进行操作。
如果只是mysql,试试正则表达式:
http://dev.mysql.com/doc/refman/5.1/en/regexp.html
我不明白你在做什么或为什么要这样做,但这就是我会做的。使用某种类型的计数器来跟踪您所在的逗号,并在正则表达式之前添加计数器的数量。
这是如果它只是 mysql,如果你有 php、c#、java、python 或任何其他语言,你可以标记化。
这是可能的,但不建议 99%。
你可以做这个爆炸,IE:
insert into table1(id) values ("1,2,3,4,6,7,8,9")
ID 字段不能是数字字段类型,可能 varchar 可能是一个不错的选择。对于 Mysql,这些值将是比数字更多的文本。
但
如果你这样做,你就错了,因为。
- 您不是在制作关系数据库。
- 您正在丢失索引,搜索会变慢。
- 你在你的代码中创建依赖,如果你想升级,添加新的东西,这根本不是一件容易的事。
请查看实体关系建模或 E/R 模型
如果您必须将此功能保留在数据库中,则可以使用过程。这是一个拆分字符串并将其插入表中的示例。如果您想在一次调用中完成此操作,您需要在TEMPORARY TABLE
过程中创建表,从中选择以从过程中返回结果,然后在退出之前将其删除。
为了它对我有用,我需要删除 COMMENT 部分。