0

我想将一些数字集作为文件 ID 存储在一列中,并在它们之后放置一个“,”以使它们分开。比如:8546, 5654, 2311, 7544, 6565, .... 但是在检索它们时,我想分别获取每个 ID。可能吗?

4

5 回答 5

0

将数据存储在数据库列(mysql)中,并使用php中的explode函数从列中读取集合。但是,像这样存储数据并不是一个好主意,您必须将每个数据存储在单独的列中,您可以使用父表的 forain 键创建另一个表并将这些 id 存储在该表上。

于 2012-05-24T19:30:55.410 回答
0

您可能应该有另一个带有ids 的表,然后您可以从该表和该表中选择 id,如果您只想使用 MySQL 进行操作。

于 2012-05-24T19:31:57.630 回答
0

如果只是mysql,试试正则表达式:

http://dev.mysql.com/doc/refman/5.1/en/regexp.html

我不明白你在做什么或为什么要这样做,但这就是我会做的。使用某种类型的计数器来跟踪您所在的逗号,并在正则表达式之前添加计数器的数量。

这是如果它只是 mysql,如果你有 php、c#、java、python 或任何其他语言,你可以标记化。

于 2012-05-24T19:32:36.740 回答
0

这是可能的,但不建议 99%。

你可以做这个爆炸,IE:

insert into table1(id) values ("1,2,3,4,6,7,8,9")

ID 字段不能是数字字段类型,可能 varchar 可能是一个不错的选择。对于 Mysql,这些值将是比数字更多的文本。

如果你这样做,你就错了,因为。

  • 您不是在制作关系数据库。
  • 您正在丢失索引,搜索会变慢。
  • 你在你的代码中创建依赖,如果你想升级,添加新的东西,这根本不是一件容易的事。

请查看实体关系建模或 E/R 模型

于 2012-05-24T19:34:48.787 回答
0

如果您必须将此功能保留在数据库中,则可以使用过程。这是一个拆分字符串并将其插入表中的示例。如果您想在一次调用中完成此操作,您需要在TEMPORARY TABLE过程中创建表,从中选择以从过程中返回结果,然后在退出之前将其删除。

为了它对我有用,我需要删除 COMMENT 部分。

于 2012-05-24T20:14:38.190 回答