我在远程服务器上有一张大表,想在本地机器上的平面磁盘文件中保留一份副本。如果我保留从表的第一行本地读取的序列号的记录,那么如果行 id=0 <> 我本地存储的列的内容,我可以发出 SELECT 命令以返回表中的所有行序列号?
就像是
SELECT * FROM 1_makes WHERE IF id@0<> local_serial
希望这是有道理的
delimiter $$
CREATE TABLE `1_makes` (
`id` int(11) NOT NULL,
`make` varchar(20) DEFAULT NULL,
`allow_global_disc` tinyint(4) DEFAULT NULL,
`home_text` text,
`pack_home_text` text,
`update_ref` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8$$
所以我想要的是只有当 id=0 和 update_ref 的行的内容与本地存储的值不同时才返回整个表。
如果我得到结果,那么我知道数据已更改,因此我可以将其保存到本地磁盘文件并更新读取的 update_ref
看起来这就是我需要的
我已删除列 update_ref 并将更新值放入 make 列 @ id=0
SELECT * FROM 1_makes WHERE (SELECT IF(make <> 'my update number', 1, 0) FROM 1_makes WHERE id = 0)
这行得通,只是想问一下 IF(make <> 'my update number', 1, 0) 中的数字 1, 0 与什么相关