>>85、>>87
selectせずにinsert or replaceだけで充分な希ガス。

update or replaceを使って意味があるのは
UNIQUE項目(datテーブルの場合はhash)をupdateする場合だけでしょ?

“or replace”なんていう非標準SQLを使いたくないって理由なら
プログラム側で分岐するしかないけど。