需要帮助解决mysql和odbc查询问题

时间:2012-11-28 18:49:42

标签: php mysql sql-server odbc

您好我正在开发一个数据来自MSSQL数据库的应用程序。在这里使用php odbc连接我得到所有需要的数据与app一起使用。但现在我有一个问题:

我正在寻找:

来自mssql(假设)的所有数据mssql_Table_A将在此应用程序中列出,每行都会给出复选框,以便用户可以检查所需的数据,检查后当他点击保存时,检查的数据将存储在本地MySQL数据库中(假设)mysql_table_A。

所以下次当他再次想要更多数据时,这个应用程序将列出来自mssql_table_A的所有数据,这些数据在mysql_table_A中不存在。

问题是:

如果dataflwo都来自MYSQL我会通过使用mysql select query轻松完成此任务

mysql_query("SELECT * FROM mysql_table_a WHERE NOT EXISTS (SELECT * FROM mysql_table_B WHERE thisID != thatID)")

但是这里我如何检查mysql表中存在的数据并列出odbc mssql数据库中的数据。

请帮我解决这个问题。

谢谢..

2 个答案:

答案 0 :(得分:1)

您需要使用mssql_sqlsrv_PDO函数连接到MSSQL。 mysql_函数严格用于MySQL。

如果要从两者中获取数据,则需要两个单独的连接。

或者,您可以使用ODBC连接从MSSQL连接到MySQL,并在MSSQL端执行查询。

答案 1 :(得分:0)

其他答案告诉您如何连接两个数据库,但根据您的评论,您仍然想知道如何进行比较。

我必须假设您至少有一列可以唯一地标识table_a中不在table_b中的行。如果你在MS SQL Server中链接mysql,就像一个答案说你可以

select * from mssql.table_a where unique_column not in (select unique_column from mysql.table_b)

但这可行,因为mssql链接到mssql中的mysql,即你可以做一个查询,mssql会为你做连接。

如果由于某种原因你不能或不想通过链接表将mysql链接到ms sql,最简单的方法就是在table_a中有某种时间戳。假设写入table_a的每条记录都有一个插入时间的时间戳:

mysql connection does select max(timestamp) into X from mysql.table_b
mssql connection does select * from mssql.table_a where timestamp > X

如果我们对您的数据有更多了解,可能还有其他方法。