0
我已經在MySQL創建存儲過程:使用功能在MySQL
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_PublicationsByDate`(IN _DateS DATE, IN _DateF DATE)
BEGIN
SELECT
CONCAT(EXTRACT(YEAR FROM filed_date), " Q", EXTRACT(QUARTER FROM filed_date)) AS date,
count(CONCAT(EXTRACT(YEAR FROM filed_date), " Q", EXTRACT(QUARTER FROM filed_date))) AS count
FROM
applications
WHERE
filed_date between _DateS and _DateF
GROUP BY
CONCAT(EXTRACT(YEAR FROM filed_date), " Q", EXTRACT(QUARTER FROM filed_date))
ORDER BY
CONCAT(EXTRACT(YEAR FROM filed_date), " Q", EXTRACT(QUARTER FROM filed_date));
END
我要替換的長碼
CONCAT(EXTRACT(YEAR FROM filed_date), " Q", EXTRACT(QUARTER FROM filed_date))
函數調用的
(僞C +еxample +爲方便起見):
char* func(char* date)
{
return CONCAT(EXTRACT(YEAR FROM date), " Q", EXTRACT(QUARTER FROM date))
}
因爲這些長表達式可能會根據外部參數(僞碼e):
DECLARE F FUNCTION;
IF (_Type = 0)
SET F = Func1;
ELSE
SET F = Func2;
END IF;
SELECT F(filed_date), count(F(filed_date))...
如何在mysql中創建它?
的功能'創建function' ...? – Shadow
影子,也許,但如何使用此功能? 它是一個全局函數或本地存儲過程? – Zhihar
您無法在MySQL中的存儲過程中聲明函數。 – Shadow