如果你在一个情况发现自己在那里你开始有
column1,
column2在桌子上-有机会,你的设计是越来越有缺陷的,你应该建立单独的表-
每个
columnX都有自己的一排。如果发现自己在同一张表上有多个重复的列,最好有一个单独的表。
这样,您可以避免将逗号分隔的值存储在列中,避免在突然需要引入另一个值的情况下破坏代码/查询
column{X+1}-而是可以根据需要具有任意数量的输入值。对您来说,这就像是一个名为的新表
land_owner_input,在其中您拥有值(您将放入
columnX)和
land_owner对该值所属行的引用。
典型的设计模式就是这样。
CREATE TABLE land_owner_input ( land_owner_input_id INT(11) AUTO_INCREMENT land_owner_id INT(11), land_owner_input_value VARCHAr(MAX));
请记住,您
land_owner_id在新表中的类型和大小应与其引用的ID完全相同。
您还可以在
land_owner_id和的
land_owner表ID之间创建外键约束,以确保数据完整性。
有了新表后,就可以使用来一起查询它们
LEFT JOIN(
JOIN如果有输入值,则只返回一个普通表即可)。
SELECt *FROM land_owner AS loLEFT JOIN land_owner_input AS loi ON loi.land_owner_id = lo.land_owner_id



