Имеется простая таблица, подобная этой:
var1 | var2
0 | 3
2 | 4
6 | 5
Мне нужно вернуть самое низкое значение (var1, кратное 2), для которого либо запись не существует (в данном случае 4), либо var2 равно 5 (в данном случае 6). Мне нужно сделать это как один запрос, но, к сожалению, я новичок в функциях MySQL.
Я пытался создать такую функцию:
DELIMITER //
CREATE FUNCTION Prova ( starting_value INT ) returns int;
BEGIN
DECLARE testNum INT DEFAULT 0;
test_loop : LOOP
IF (SELECT db.tabella WHERE var1 = testNum AND var2 <= 5) OR WHERE NOT EXISTS (
SELECT * FROM db.tabella WHERE var1 = 'testNum'
) LIMIT 1; THEN
RETURN testNum;
END IF;
SET testNum = testNum + 2;
SELECT testNum;
END LOOP;
END;
но это не похоже на работу.
Спасибо.