php - 如何使用 PHP 检查 SQL 数据库是否已有

标签 php mysql database

我试图找到这个问题的答案,但没有一个答案适合。

我有两个数据库,其中一个有 15,000,000 个条目,我想提取必要的数据并将其存储在一个更小的数据库中,大约有 33,000 个条目。两个数据库同时打开。或者至少他们应该是。

在打开大数据库并从中提取条目时,是否可以检查该值是否已存在于较小数据库的某个表中?我只需要一些通用的方法来检查这一点。

在我的代码中,我首先打开两个数据库(大一个是 oddsnavi_push,小一个是 oddsnavi_baby):

$database = "oddsnavi_push";    
$db_handle = mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database, $db_handle);
$database_baby = "oddsnavi_baby";
$db_handle_baby = mysql_connect($server, $user_name, $password);
$db_found_baby = mysql_select_db($database_baby, $db_handle_baby);

然后我开始从 oddsnavi_push 读取和计算数据:

$SQL_SELECT_ALL = "...giant query...";
$result_select_all = mysql_query( $SQL_SELECT_ALL );

while($db_field_all = mysql_fetch_assoc( $result_select_all ) ) {
$SQL_INSERT="INSERT INTO oddsnavi_baby.calc (id, one, two) VALUES ('$id', '$one', '$two')";

它一直有效。它获取读取的数据(id、一、二)并将它们插入到名为 calc 的 oddsnavi_baby 表中的适当列中。当 oddsnavi_baby 完全为空时,它会正确执行此操作。

但是,我需要它仅在条目(基于某个“id”是否存在)不存在时更新数据库。

编辑:我会重新表述我的问题。从查询结果(大数据库)中,我为每一行获取字符串。例如 $string.如何打开第二个数据库并检查 oddsnavi_baby.calc 表在 Events 列中是否具有 $string 值?

最佳答案

跳过检查并尝试仅使用 INSERT IGNORE 假设 Id 是唯一键。

http://dev.mysql.com/doc/refman/5.5/en/insert.html

关于php - 如何使用 PHP 检查 SQL 数据库是否已有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10046899/

相关文章:

php - 从数据库中选择随机列

php - 我想在 php 中创建一个唯一的客户 ID

mysql - mysql 中什么更快,数字列等于或更大?

mysql - 顺序数据的数据库

java - 使用 Java 连接到数据库

mysql - 从地理编码缓存主要地点的最有效方法

php - 在 MYSQL 语句中使用 COUNT

php - 使用 php 将多个文件下载为 zip 文件

php - 通过标签名称获取多个元素并在回显它的循环中检查元素标签

php - 为什么在编译 PHP 扩展 DLL 时会出现 LNK2005 错误