來實現它的方法是 「標準化」 的模式。有幾個相關的思想包含了模式規範化,但是關鍵的一點是你的數據應該用兩個表格和一個關係表示。這種關係被稱爲「一對多」,因爲對於一個「酒吧」來說,有一個或多個「Foo」。
然後,一個必要的步驟是向您的模式添加唯一標識符列(最簡單的方法是使用自動遞增整數),然後使用JOIN
機制來查詢您的數據。
這就是爲什麼我們稱MySQL(和許多其他人)爲「關係」數據庫。
Bar
+----+----------+
| id | name |
+----+----------+
| 01 | fiz |
+----+----------+
| 02 | ghi |
+----+----------+
Foo
+----+--------+----------+
| id | bar_id | name |
+----+--------+----------+
| 01 | 01 | baz |
+----+--------+----------+
| 02 | 01 | car |
+----+--------+----------+
| 03 | 02 | abc |
+----+--------+----------+
| 04 | 03 | def |
+----+--------+----------+
而且這裏是聯接看起來像基於富的關係「有車族」選擇「FIZ」記錄
SELECT
Bar.*
FROM Bar
JOIN Foo ON Bar.id = Foo.bar_id
WHERE Foo.name = "car"
如果你想美孚關係的整個列表每個條帶匹配富:
SELECT
Bar.*,
GROUP_CONCAT(Foo.name)
FROM Bar
JOIN Foo ON Bar.id = Foo.bar_id
WHERE Foo.name = "car"
GROUP BY Bar.id
規範化數據將使這種不必要的和你的生活輕鬆了許多 – 2012-07-27 02:02:53