-1

我正在编写 PHP kohana 应用程序,其中一部分我需要在表中插入一些记录。

我的表结构:

TABLE BOOKINGS
id int
booked_object_id int
date_from date
date_tom date

该表有大约 10k 条记录,其中包含已预订的对象。

现在在我的一个 PHP 函数中,我有一个包含新数据的数组,我想将其插入到这个表中。执行我的函数时,大约有 20-30 个新预订要插入。

现在让我们来解决我的主要问题 - 我希望它检查我想插入表中的任何预订是否已经预订(object_id 和 date_from 与我的 php 数组中的相同)。如果其中任何一个已被预订,我的函数将不会在表中插入任何新内容。

有没有比将 mysql 表的所有内容放入 PHP 数组并检查 20 次(或我的插入次数)更有效的方法?

4

1 回答 1

2

如果您打算在表中查找某个列,那么您应该索引它。这将创建一个哈希表,数据库服务器将使用它来查找行。

至于进行 20 次调用的效率.. 您可以使用IN语句选择 1 次调用中的所有现有记录,并在插入时简单地忽略已经存在的记录。

参考:

expr IN(值,...)

于 2013-01-29T12:31:48.377 回答