MySql 判断汉字、日期、数字的函数
几个平常用的mysql函数
/*****************************************************
1.判断字符串是否为汉字 返回值:1-汉字 0-非汉字
*****************************************************/
DROP FUNCTION IF EXISTS fc_is_hanzi;
CREATE FUNCTION fc_is_hanzi(
p_str VARCHAR(1024)
)
RETURNS int(11)
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT '检查字符串是否为汉字'
BEGIN
/*检查字符串是否为汉字 返回值:1-汉字 0-非汉字*/
DECLARE _ret, i, other_cnt, l_acode INT DEFAULT 0;
SET _ret = 0;
SET i = 1;
SET other_cnt = 0;
SET l_acode = 0;
WHILE i <= CHAR_LENGTH(p_str) DO
SET l_acode = ASCII(SUBSTRING(p_str, i, 1));
IF l_acode<124 or l_acode>254 THEN
SET other_cnt = other_cnt + 1;
END IF;
SET i = i + 1;
END WHILE;
IF other_cnt = 0 THEN
SET _ret = 1;
ELSE
SET _ret = 0;
END IF;
RETURN _ret;
END;
/*****************************************************
2.判断日期格式是否正确(返回值:1-正确 0-错误)
*****************************************************/
DROP FUNCTION IF EXISTS fc_ck_date;
CREATE FUNCTION fc_ck_date(
p_cont CHAR(32)
)
RETURNS tinyint(4)
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT '判定日期格式是否正确'
BEGIN
/*判定日期格式是否正确(返回值:1-正确 0-错误)*/
/*输入值格式为:yyyyMMdd 或 yyyy-MM-dd*/
IF(SELECT DATE_FORMAT(p_cont
相关文档:
1.首先得对mysql 里面的参数进行介绍下:
procedure--in:输入参数,out输出参数,inout这个就不用说了,大概也猜到了
declare:声明变量.记主, ......
lect ASIN('foo');
-> 0.000000
ATAN(N)
返回N的反正切值
mysql> select ATAN(2);
-> 1.107149
mysql> select ATAN(-2);
-> -1.107149
ATAN2(X,Y)
返回2个变量X和Y的反正切(类似Y/X的反正切,符号决定象限)
mysql> select ATAN(-2,2);
-> -0.785398
mysql> ......
----------------------------------------------------------------------
--该存储过程用户处理信息,当数据不存在表中时则插如,否则就删除
--只用了简单的事务,下面将有更复杂的例子
--pro_produce 产品表(pname.p_id(编号,主键),ptime(添加时间))
--
--
--
---------------------------------------------------- ......
字段pageNum
1,6,9,11
希望排序顺序为1,6,9,11
但是实际排序为1,11,6,9
后来发现是因为pageNum这个字段是varchar类型的不是int型,所以排序会出问题。
网上的解决方法为
order by pageNum+0
order by pageNum×1
不知道为什么order by pageNum×1 数据库通不过
但是pageNum+0是好用的 ......