十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
MySQL中排序输出需要用order by。
成都创新互联公司是专业的南岳网站建设公司,南岳接单;提供成都做网站、网站制作、成都外贸网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行南岳网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
如图,test表中有如下数据:
现在分别要求按ID正序和倒序输出结果。
正序:
select * from test order by id;
结果:
倒序:
select * from test order by id desc;
结果:
DELIMITER //
DROP FUNCTION ReverseWordBy //
CREATE FUNCTION ReverseWordBy(pOldVal TINYTEXT, pDivChar CHAR(1))
RETURNS TINYTEXT
BEGIN
/** 预期结果. **/
DECLARE vResult TINYTEXT;
-- 当前逗号的位置.
DECLARE vIndex INT;
-- 前一个逗号的位置.
DECLARE vPrevIndex INT;
-- 查询第一个 逗号的位置.
SET vIndex = INSTR(pOldVal, pDivChar);
IF vIndex = 0 THEN
-- 参数中没有逗号,直接返回.
RETURN pOldVal;
END IF;
-- 初始化情况,前一个逗号不存在.
SET vPrevIndex = 0;
-- 初始化结果为空白字符.
SET vResult = '';
-- 循环处理。
WHILE vIndex 0 DO
-- 设置结果 = 本次查询的结果 , 以前的查询结果.
SET vResult = CONCAT(SUBSTRING(pOldVal, vPrevIndex + 1, (vIndex-vPrevIndex-1)), pDivChar, vResult);
-- 前一个逗号的位置 = 当前逗号的位置
SET vPrevIndex = vIndex;
-- 查询下一个逗号的位置.
SET vIndex = LOCATE(pDivChar, pOldVal, vPrevIndex + 1);
END WHILE;
-- 最后追加最后一组数据.
SET vResult = CONCAT(SUBSTRING(pOldVal, vPrevIndex + 1), pDivChar, vResult);
-- 清除掉最后一个 逗号.
SET vResult = LEFT(vResult, LENGTH(vResult)-1);
-- 返回结果.
RETURN vResult;
END;
//
DELIMITER ;
SELECT ReverseWordBy('4531,8651,3256', ',') A;
SELECT ReverseWordBy('1,12,123,1234,12345,123456', ',') B;
输出结果:
mysql SELECT ReverseWordBy('4531,8651,3256', ',') A;
+----------------+
| A |
+----------------+
| 3256,8651,4531 |
+----------------+
1 row in set (0.00 sec)
mysql
mysql SELECT ReverseWordBy('1,12,123,1234,12345,123456', ',') B;
+----------------------------+
| B |
+----------------------------+
| 123456,12345,1234,123,12,1 |
+----------------------------+
1 row in set (0.00 sec)
我们知道倒序输出是很简单的
select
*
from
table
order
by
id
desc
直接这样就可以
那么现在的问题在于日期字段怎么来倒序输出
这里我们用到cast()来将指定的字段转换为我们需要的类型
如下是实际项目中的sql语句
select
*
from
water
where
phoneNumber=@phoneNumber
order
by
cast(date
as
datetime)
desc
我们说学而不思则罔,我们来思考下深层次的内容。
经过查阅资料得知类型的转换有两种方式
1.cast()方法
2.convert()方法
使用格式
1.cast(字段名
as
数据类型)
如上述sql语句
cast(date
as
datetime)
2.convert(字段名,数据类型)
例:convert(da,datetime)
以上所述是小编给大家介绍的mysql记录根据日期字段倒序输出
,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!