如何在函数中使用变量

How to make use of variable on a function

我需要做一个存储函数:

这是我的代码

SELECT count(Dominio) FROM Thogar WHERE DOMINIO='%'

我需要创建一个存储函数,我将在 (U,C,R) 之间写一个字母,该函数将用选定的代码替换之前代码中的 %字母.

我该怎么做?谢谢!

成功了

CREATE FUNCTION `Buscar`(`param` CHAR(1))
    RETURNS INT
    LANGUAGE SQL
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
    DECLARE res INT;
    SELECT count(Dominio) INTO res FROM Thogar WHERE DOMINIO=param;
    RETURN res;
END

    Call buscar('C')

这应该有效:

DROP FUNCTION IF EXISTS myFunc;
DELIMITER $$
CREATE FUNCTION myFunc(
    param CHAR(1)
) RETURNS INT;
BEGIN
    DECLARE res INT;
    SELECT count(Dominio) INTO res FROM Thogar WHERE DOMINIO=param;
    RETURN res;
END;
$$
DELIMITER ;

如果您只想使用一个 sql 查询来创建存储函数, 我看不出任何正常的理由。

它不会给你带来性能提升。

简化一下怎么样?

您可以创建视图:

CREATE VIEW v_dominio_counters AS 
SELECT Dominio, count(Dominio) AS counter FROM Thogar GROUP BY Dominio

然后使用它:

SELECT counter FROM v_dominio_counters WHERE Dominio = 'U' LIMIT 1;

它将始终为您准备好使用计数器,当您有大量 table.