Мне нужно выполнить запрос, который сильно зависит от нескольких условий, которые необходимо проверить путем анализа этих данных в других таблицах, основная цель - вернуть строки из таблиц, если все условия в других таблицах правда, мне надоели INNER соединения LEFT и оператор WHERE, мне нужно посмотреть одну таблицу, если возвращаемое значение 1, 0 или 4 или набор значений, мне нужно выполнить другой оператор и на основе результаты этого мне нужно выполнить одно последнее утверждение, которое является моим окончательным результатом.
Что касается функций, это процедуры, я изучаю документацию MySQL, как ад, и все, что она мне дает, это:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION `SimpleCompare`(n INT, m INT) RETURNS varchar(20) CHARSET latin1
BEGIN
DECLARE s VARCHAR(20);
IF n > m THEN SET s = '>';
ELSEIF n = m THEN SET s = '=';
ELSE SET s = '<';
END IF;
SET s = CONCAT(n, ' ', s, ' ', m);
RETURN s;
END
Теперь это так просто, я даже не знаю, с чего начать, я "returns varchar(20)
", что это должно быть, если я ожидаю, что он вернет таблицу из 10 строк, а не VARCHAR (20), что объявить "DECLARE s VARCHAR(20);
" так, как если бы я хотел, чтобы это была таблица, а не VARCHAR (20).
(n > m)
после «IF», как заменить его собственным запросом,
и после того, как я это сделаю, «THEN SET s = '>'
», как мне установить s = для результатов запроса?, это сводит меня с ума, синтаксис за мной, и документация ничего не объясняет.
Заранее спасибо