所以,为了简单起见,假设我有一个像这样的表(F1,F2,F3是字段):只有当某些字段值不相同时,我如何才能将其插入表中?
f1 f2 f3
a b c
d e f
,说我有一个PHP数组这样我想添加到表:
a g h
现在,我希望能够加入这一块,但我不希望能够加入这样的事情:
a e f
场F1可以有重复。字段f2 & f3不能。我试过为f2添加一个唯一的索引,并使用REPLACE INTO
,但这不是我想要的。如果在数据库表的同一行上没有找到f3 &字段条目,我需要在那里设置一个插入方式。
$query = "REPLACE INTO table1 (title, description, start, end, location, affiliation)
VALUES ('{$my_title_php_array[$count]}',
'{$my_description_php_array[$count]}',
'{$my_start_php_array[$count]}',
'{$my_end_php_array[$count]}',
'{$my_location_php_array[$count]}',
'{$my_affiliation_php_array[$count]}')”;
description
是数据类型 'TEXT',这是不能被用作INDEX
(过大)的。理想情况下,我希望所有必须与传入的PHP数组条目进行比较检查。
比方说,我有我的新范例的PHP数组这些东西:
Title1 Desc1 1:00pm 2:00pm Loc1 Aff1
Title1 Desc1 3:00pm 4:00pm Loc1 Aff1
Title2 Desc2 1:00pm 2:00pm Loc2 Aff2
Title2 Desc1 1:00pm 2:00pm Loc3 Aff3
这些都应该被认为是独特的,进入了我希望只能够进入他们时,他们不完全匹配我的数据库中的一行。 Desc1很长。说明通常是最独特的。有缩短的方法吗?
你可能会更好地发布你的*实际*数据和表结构。 a,b,c和f1,f2等是没有意义的。另外,你有没有任何PHP代码? – James
f2和f3必须是单独的还是成对的?也就是说,在你的示例表中,我可以为f1 f2 f3插入一个e z吗? – Zippers
要扩展@Zippers的答案:如果f2和f3都必须是唯一的,则需要在两列上创建一个组合索引,例如, '唯一索引(f2,f3)' – xathien