我不知道这篇文章是否重复。我发现了一些由JQuery DataTable
组成的php文件,它是由某人制作的(我不知道开发人员在哪里)。
客户端
服务器端
这个查询的功能是显示数据库中的数据,查询类似于:
case 'average' :
$needfieldname=false;
$month=getVar('calcmonth');
$sql="SELECT SQL_CALC_FOUND_ROWS ID,name,remark,avrusepmonth
, CONCAT('<input type=''checkbox''id=''cb' , ID ,''' name=''check[]'' value=''',ID,''' >'
,'<label class=''lbcb'' for=''cb', ID,'''><=update=</label>') as checkb
, moq, leadtime
FROM test_media ";
break;
我想问的是这个部分:
monthavrage(ID,".$month.") as latestavr
上面查询的Mysql函数是什么?因为我得到了一个错误,比如:
FUNCTION TestMediaControl.monthavrage does not exist
FUNCTION TestMediaControl.monthavrage does not exist
如果相关的错误代码是1305,这意味着MySQL正在寻找存储过程"monthavrage",但找不到它。
我找到了一个声明monthavrage函数的SQL文件。我只需要执行这个文件,所以我的问题就消失了。
USE testmediacontrol;
DROP FUNCTION IF EXISTS monthavrage;
delimiter //
CREATE FUNCTION monthavrage (mediaID MEDIUMINT ,amonth DECIMAL(2)) RETURNS DECIMAL(6,2)
BEGIN
DECLARE avguse DECIMAL(6,2);
DECLARE howlongmonth DECIMAL(2);
SELECT DATEDIFF(NOW(),startuse)/30.4
INTO howlongmonth from media_use
WHERE media_ID=mediaID
ORDER BY startuse
LIMIT 0,1;
IF howlongmonth < amonth THEN
SET amonth=howlongmonth;
END IF;
IF amonth <= 0 THEN
RETURN 0;
END IF;
SELECT count(*)/amonth
INTO avguse from media_use
WHERE media_ID=mediaID and startuse BETWEEN SUBDATE(now(),INTERVAL 6 MONTH) and now();
RETURN avguse;
END