mysql记录根据日期字段倒序输出

mysql记录根据日期字段倒序输出,第1张

我们知道倒序输出是很简单的

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记录根据日期字段倒序输出

,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

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)

//order by id(这里的id为表的主键自增字段名)

$sql = "select * from 表名 order by id desc limit 10"

$result = mysql_query($sql)

if($result &&mysql_num_rows($result)){

    where($row = mysql_fetch_assoc($result)){

        var_dump($row)

        echo "<hr />"

    }

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8455534.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存