SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 29.04.2013 23:49:54

KupueIIIKo
Участник
Зарегистрирован: 29.04.2013
Сообщений: 3

Сижу и мучаю примеры! и читаю книги но догнать не могу!


CREATE FUNCTION iden2 (s_id int) RETURN (ident tinytext)
DETERMINISTIC
NO SQL
BEGIN
    SELECT identity as ident FROM  dating WHERE id=s_id;
   
    RETURN ident;
END
 

Вообщем надо функции передать id! Она должна вернуть поле identity которое храниться в формате tinytext

Неактивен

 

#2 30.04.2013 00:06:54

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Сижу и мучаю примеры! и читаю книги но догнать не могу!

Попробуйте так

DELIMITER $$

CREATE FUNCTION `iden2`(s_id int)
RETURNS tinytext CHARSET utf8
BEGIN
  DECLARE ident tinytext;
  SELECT identity into ident FROM  dating WHERE id=s_id;
  RETURN ident;
END$$


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 02.05.2013 09:32:15

KupueIIIKo
Участник
Зарегистрирован: 29.04.2013
Сообщений: 3

Re: Сижу и мучаю примеры! и читаю книги но догнать не могу!

deadka написал:

Попробуйте так

DELIMITER $$

CREATE FUNCTION `iden2`(s_id int)
RETURNS tinytext CHARSET utf8
BEGIN
  DECLARE ident tinytext;
  SELECT identity into ident FROM  dating WHERE id=s_id;
  RETURN ident;
END$$

Ошибка 7 строка

Я уже пробывал и процедуру написать! НЕ возвращает и все

Отредактированно KupueIIIKo (02.05.2013 09:32:49)

Неактивен

 

#4 02.05.2013 09:59:18

KupueIIIKo
Участник
Зарегистрирован: 29.04.2013
Сообщений: 3

Re: Сижу и мучаю примеры! и читаю книги но догнать не могу!


DROP PROCEDURE IF EXISTS s_iden;
DELIMITER ;;
CREATE PROCEDURE s_iden (IN s_id INT,OUT ident tinytext)
BEGIN
    SELECT identity INTO ident FROM  dating WHERE id=s_id;
END;;

DELIMITER ;
CALL s_iden(ЗНАЧЕНИЕ,@out_var);
SELECT @out_var;
 


Написал процедуру!
Теперь как её вызвать в таком виде
SELECT * ,
IF( other_social>0, ТУТ ЗНАЧЕНИЕ ПРОЦЕДУРЫ, '' ) as iden2
FROM dating
LIMIT 0 , 5

Неактивен

 

#5 02.05.2013 13:07:58

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Сижу и мучаю примеры! и читаю книги но догнать не могу!

Процедуру можно вызвать только через call.
В вашем случае (в select) можно использовать функцию.

Неактивен

 

#6 02.05.2013 13:08:46

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Сижу и мучаю примеры! и читаю книги но догнать не могу!

KupueIIIKo написал:

deadka написал:

Попробуйте так

DELIMITER $$

CREATE FUNCTION `iden2`(s_id int)
RETURNS tinytext CHARSET utf8
BEGIN
  DECLARE ident tinytext;
  SELECT identity into ident FROM  dating WHERE id=s_id;
  RETURN ident;
END$$

Ошибка 7 строка

Какая ошибка?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson