sql - 什么相当于 SQL 中的数组?

标签 sql database

我有一个表,需要每一行存储相同类型的行的有序集合。

例如,我正在想象类似的东西:

class blah
{
   float yetMoreData;
};

class foo
{
   int data;
   String moreData;
   blah[] anOrderedCollectionOfBlahClasses;
};

实现此目标的最佳方法是什么?

最佳答案

您希望 BlahFoo 是单独的表,其中 BlahFoo< 具有多对一关系Blah 表中的记录应该有一个外键 foo_id,标识它们的父 Foo 记录。 Blah 还有一个 index_in_array 属性,允许对结果进行排序。

CREATE TABLE Foo (
    id BIGINT,
    data INT,
    moreData CHAR(50)
);

CREATE TABLE Blah (
    id BIGINT,
    yetMoreData DOUBLE,
    foo_id BIGINT,
    index_in_array INT
);

如果你想获取给定 Foo 的所有 Blah(例如,ID 为 5 的 Foo),请使用:

SELECT * FROM Blah
WHERE Blah.foo_id = 5
ORDER BY Blah.index_in_array;

如果您要对记录进行排序,通常它不应该是任意的(除非该任意顺序是由用户专门选择的,例如,对待办事项列表中的项目进行排序)。通常,您会根据数据的某些“自然发生的”属性进行排序,例如添加日期或按名称的字母顺序等。

N.B.:这个答案是伪代码 SQL——确保在将它扔到脚本中之前使其适应特定的数据库语法。 (不要忘记添加一些键和索引!)

关于sql - 什么相当于 SQL 中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10748098/

相关文章:

php - 带点的子串

mySQL 返回错误的计数结果

php - 爆炸复选框循环php

java - 从表 darby apache db 中的日期列中获取缺失的日期

mysql - MySQL 4.0.20 数据库/表/列/字符串的排序规则是什么?

sql - MySQL REGEXP 怎么写?

SQL 查询以查找在某个科目注册的学生总数

sql - 防止使用触发器删除单行

ruby-on-rails - 你如何只重置 rails 中的特定表

mysql - 设置表结构的最佳方法