Если под «посмотреть, существует ли строка» вы подразумеваете под первичным ключом, вас может заинтересовать 12.2.5.3. INSERT ... ON DUPLICATE KEY UPDATE Синтаксис :
Если вы укажете ON DUPLICATE KEY
ОБНОВЛЕНИЕ, и вставлена строка, которая
приведет к дублированию значения в
УНИКАЛЬНЫЙ ИНДЕКС или ПЕРВИЧНЫЙ КЛЮЧ, ОБНОВЛЕНИЕ
старого ряда выполняется. За
Например, если столбец объявлен как
УНИКАЛЬНО и содержит значение 1,
следующие два утверждения имеют
идентичный эффект:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
UPDATE table SET c=c+1 WHERE a=1;
Может быть, вы можете использовать это?
По сравнению с тем, что вы сказали, tt делает все по-другому: пытается вставить, и если возникает ошибка DUPLICATE KEY, она обновляет строку ... Но она позволяет вам не проверять, существует ли строка первой.
Тем не менее, он работает только по первичному ключу / уникальному индексу; не с какой-либо оговоркой где.