Подскажите, пожалуйста, такой вопрос. Для примера я создаю функцию Код (Text): DELIMITER $$ create function some_func(IN param1 varchar, IN param2 varchar) RETURNS int BEGIN SELECT @lines_count:= count(*) FROM some_table; RETURN lines_count; END $$; DELIMITER ; Данный запрос делаю через phpmyadmin. В ответ получаю Your SQL query has been executed successfully. Далее я пытаюсь вызвать данную функцию Код (Text): SELECT some_func('', ''); на что получаю ответ #1305 - FUNCTION demius.some_func does not exist В чем проблема? И еще, если кто-то знает, как в phpmyadmin посмотреть список имеющихся функций?
Коде создания функции возможно присутствуют ошибки(зависит от версии MySql), у меня заработал следующий вариант: Код (Text): CREATE DEFINER=`root`@`localhost` FUNCTION `some_func`(param1 char, param2 char) RETURNS int(11) BEGIN SELECT count(*) into @lines_count FROM some_table; RETURN @lines_count; END В information_schema: Код (Text): SELECT * FROM `ROUTINES`
1. Убираем in 2. Указываем длину varchar 3. Запрос не верный, либо так: Код (Text): @lines_count = (select count(*) FROM some_table); либо так Код (Text): SELECT count(*) into @lines_count FROM some_table; пример: Код (Text): create function some_func( param1 varchar(255), param2 varchar(255)) RETURNS int BEGIN SELECT count(*) into @lines_count FROM some_table; RETURN @lines_count; END 4. либо сразу так без переменной Код (Text): create function some_func() RETURNS int BEGIN RETURN (SELECT count(*) FROM some_table); END