-3

我需要在一个 MySql 字段中保存两个数值ab。两者都是最多 11 个字符的自然数,它们将在下一个 SQL 结构中使用。

"SELECT FROM table WHERE field=a and foild=b"

我想到了接下来的两种可能性:

  1. 创建一个具有 {11},{11} 范围的DECIMAL 。
  2. 创建一个包含 23 个字符的VARCHAR并将它们保存为“ab”字符串。

哪个是最好的选择?有没有更好的选择让它快速工作?

当说快速时,我的意思也是让ab在我的查询中工作的“最便宜”的方式。这两个示例在使用它们之前都需要一个拆分过程,我不知道是否有任何方法可以直接在一个查询中执行此操作,将ab作为好奇字段.part1好奇字段.part2 ...

谢谢,(如果好奇领域太棒了,请原谅)

编辑:

为什么我想在一列中存储多个值?

因为我有下一张桌子

整数值 内容 [INT]

varchar 值 内容 [VARCHAR (100)]

文本值 内容 [TEXT]

魔法值 内容[????]

由于多种原因,它总是被保存在“内容”中,并且使“幻值”表具有内容 a 和内容 b 字段,这对于我正在处理的需求来说并不是一个很好的解决方案。

4

3 回答 3

2

不不不!

永远不要在一列中存储多个值。时期。

于 2012-12-27T12:16:19.060 回答
0

您不能在一列中保存两个十进制值并且该列的数据类型为decimal,最好将其存储为数据类型为的两列而decimal不是值以逗号分隔的列。

使用两个数字列比使用逗号分隔值的列搜索要容易得多。

于 2012-12-27T12:18:07.090 回答
0

如果您想将自然数存储在数据库中,而不是存储在十进制或整数中。如果您存储为整数

  1. 检索很容易。
  2. 您可以在 sql 本身中对它们进行操作或计算。

If you store in a single field, the above benefit you cant get and more over you need to split /concatenation it whenever you are saving or retrieving from db.

于 2012-12-27T12:21:01.197 回答