如何在函数中使用变量
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.
我需要做一个存储函数:
这是我的代码
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.