1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- delimiter //
- drop function if exists getLastTerm//
- create function getLastTerm()
- RETURNS varchar(20)
- DETERMINISTIC
- BEGIN
- DECLARE str varchar(20);
- select nounvalue into str from sys_noun where NOUNITEM = 'TERM';
- RETURN str;
- END //
- DROP FUNCTION IF EXISTS `nextval`;
- delimiter //
- CREATE FUNCTION nextval(sequence_name varchar(64)) RETURNS int(11)
- BEGIN
- declare current integer;
- set current = 0;
- select t.value into current from t_sequence t where t.sequence_name = sequence_name for update;
- update t_sequence t set t.value = t.value + 1 where t.sequence_name = sequence_name;
- set current = current + 1;
- return current;
- end//
- -- (匹配两个以逗号分隔的字符串是否存在相同的字符串)函数 用于发布信息查询
- DROP FUNCTION IF EXISTS `func_haveSameContent`;
- CREATE FUNCTION `func_haveSameContent` (setA varchar(255),setB varchar(255)) RETURNS int(1)
- BEGIN
- DECLARE idx INT DEFAULT 0 ;
- DECLARE len INT DEFAULT 0;
- DECLARE llen INT DEFAULT 0;
- DECLARE clen INT DEFAULT 0;
- DECLARE tmpStr varchar(255);
- DECLARE curt varchar(255);
- SET len = LENGTH(setB);
- WHILE idx < len DO
- SET idx = idx + 1;
- SET tmpStr = SUBSTRING_INDEX(setB,",",idx);
- SET clen = LENGTH(tmpStr);
- IF idx = 1 THEN SET curt = tmpStr;
- ELSE SET curt = SUBSTRING(setB,llen+2,clen-llen-1);
- END IF;
- IF FIND_IN_SET(curt,setA) > 0 THEN RETURN 1;
- END IF;
- IF clen <= llen THEN RETURN 0;
- END IF;
- SET llen = clen;
- END WHILE;
- RETURN 0;
- end//
- delimiter ;
|