MySQL имеет что-то вроде этого:
INSERT INTO visits (ip, hits)
VALUES ('127.0.0.1', 1)
ON DUPLICATE KEY UPDATE hits = hits + 1;
Насколько я знаю, что эта функция не существует в SQLite, что я хочу знать, то, если существует какой-либо путь к achive тот же эффект, не имея необходимость выполнять два запроса. Кроме того, если это не возможно, что делает Вы предпочитаете:
Я бы предпочел UPDATE (+ INSERT, если UPDATE не удалось)
. Меньше кода = меньше ошибок.
INSERT OR IGNORE INTO visits VALUES ($ip, 0);
UPDATE visits SET hits = hits + 1 WHERE ip LIKE $ip;
Это требует, чтобы столбец «ip» имел ограничение UNIQUE (или PRIMARY KEY).
РЕДАКТИРОВАТЬ: Еще одно отличное решение: https://stackoverflow.com/a/4330694/89771 .