2013-11-21 55 views
1

我正在尋找一些簡單的用戶定義的函數在mysql中根據是否找到記錄返回true或false。我很努力的語法是 任何MySQL的投注誰可以點我在正確的方向...mySQL用戶定義的函數,如果記錄存在

delimiter $$ 

CREATE DEFINER=`root`@`localhost` FUNCTION `doesItExist`(`id` int) RETURNS bool 
BEGIN 
    declare var_name bool; 
    IF (EXISTS (select 1 into var_name 
    from table_name 
    where id = id;)) 
    return var_name; 
END$$ 
+1

'哪裏id = id'?你如何認爲MySQL應該理解的是一個'id'是列而另一個是參數? –

+0

@ypercube右邊的id是指傳入的參數... – chugh97

回答

1

不知道什麼是具有這樣的功能的角度來看,這應該工作:

DROP FUNCTION IF EXISTS `IS_RECORD_EXISTS`; 

DELIMITER $$ 
CREATE FUNCTION `IS_RECORD_EXISTS`(`FIELD_VALUE` INT) RETURNS bool 
BEGIN 
    DECLARE flag bool DEFAULT false; 

    SELECT EXISTS(
    SELECT 
    * 
    FROM 
    `City` 
    WHERE 
    `id` = FIELD_VALUE) INTO flag; 
    RETURN flag; 
END$$ 
+0

我正在使用一個自連接,因此我需要它來檢查該字段是否存在於第二個別名table.eg表中一個自連接表2,IF_RECORD_EXISTS(在select中選擇table2.id)。希望這是有道理的 – chugh97

相關問題