【发布时间】:2015-02-21 07:20:57
【问题描述】:
我有一张这样的桌子:
id name children
1 Roberto Michael,Dia
2 Maria John,Alex
3 Mary Alexandre,Diana
我的问题是; 我想知道谁有一个叫亚历克斯的孩子。
我不能在 SQL 中使用 "where children = 'Alex'",因为我在同一个单元格中有多个名称。
所以我使用"where children LIKE '%Alex%'" - 这看起来很聪明但
同时我开始像亚历克斯一样开始:(亚历山大
或者我想得到 dia 但结果是 dia 和 diana :(
如何获得该数据类型的单个 Alex?
我希望我能用我糟糕的英语解释我的问题:D
【问题讨论】:
-
见规范化。它是关系数据库的基础。
-
在一个表字段下有多个孩子不是一个好主意。最好创建第二个存储孩子姓名的表,并使用外键将其连接到主表。
-
Strawberry 和kidA 都在说同样的事情:您需要将“children”分成一个单独的表,然后将其链接回“parents”。该过程称为“normalization”。父母和孩子之间的“链接”称为“foreign key”。
-
FoggyDay 也是如此;-)