リモートサーバーに大きなテーブルがあり、ローカルマシンのコピーをフラットディスクファイルに保存したいと考えています。テーブルの最初の行からローカルに読み取られたシリアル番号の記録を保持している場合、行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の数字が何に関連しているかを尋ねたかっただけです。