mysql——convert函数

本文介绍了MySQL中使用CAST和CONVERT函数进行数据类型转换的方法,并通过具体示例展示了如何将十六进制字符串转换为十进制数值再进行SHA1加密。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考博客: https://www.cnblogs.com/chenqionghe/p/4675844.html

CAST(x AS type)

CONVERT(x,type)

这两个函数只对BINARY、CHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER。

SELECT CAST('123' AS UNSIGNED INTEGER) + 1
    ->124

SELECT '123' + 1
    ->124 其实MySQL能默认转换

SELECT CAST(NOW() AS DATE)
  ->2014-12-18

 

例如:

数据库中user表中 magicstr字段是16进制字符 转换成10进制 再被sha1编码

update sigma_account_us_user set `password`= SHA1(CONVERT( magicstr, SIGNED )) where id=467450 

 

转载于:https://www.cnblogs.com/JAYWX/articles/10147860.html

### 将 MySQL 中的 `varchar` 类型转换为 `int` 类型的方法 在 MySQL 数据库中,将 `varchar` 类型的数据转换为 `int` 类型可以通过多种方式实现。以下是几种常见的方法及其适用场景: #### 方法一:使用加零法 (`+0`) 这是一种简单而有效的方式,适用于数值字符串可以直接转化为整数的情况。通过在字段后面加上 `+0`,MySQL 会自动尝试将该字段解析为数字。 ```sql SELECT * FROM table_name ORDER BY column_name + 0 DESC; ``` 这种方法的优点在于其简洁性和高效性,但在处理非纯数字字符时可能会返回错误的结果或警告[^3]。 #### 方法二:使用 `CAST()` 函数 `CAST()` 是一种标准 SQL 函数,用于显式地将数据从一种类型转换为另一种类型。对于将 `varchar` 转换为 `int`,可以指定目标类型为 `SIGNED` 或 `UNSIGNED` 整数。 ```sql SELECT * FROM table_name WHERE condition ORDER BY CAST(column_name AS SIGNED); ``` 这里,`SIGNED` 表示带符号整数,适合存储正负值;如果仅需表示正值,则可以选择 `UNSIGNED`[^1]。 #### 方法三:使用 `CONVERT()` 函数 类似于 `CAST()`,`CONVERT()` 提供了相同的转换功能,只是语法稍有不同。它可以接受两个参数——待转换表达式以及目标数据类型。 ```sql SELECT * FROM table_name WHERE condition ORDER BY CONVERT(column_name, SIGNED); ``` 无论是采用 `CAST()` 还是 `CONVERT()`,这两种方法都提供了良好的兼容性和清晰度,推荐作为首选方案之一[^2]。 #### 方法四:定义列别名并通过别名操作 有时为了提高查询可读性或者进一步加工数据,可以在 SELECT 子句中创建一个新的计算列,并基于此新列进行后续运算。 ```sql SELECT *, CAST(column_name AS SIGNED) AS converted_column FROM table_name ORDER BY converted_column DESC; ``` 这样不仅保持原始数据不变,还能够灵活运用变换后的数值参与逻辑判断或其他复杂计算过程[^4]。 以上就是关于如何将在 MySQL 数据库里存储为 varchars 的数据项转变成为 integers 的一些基本技巧。每种技术都有各自的特点和局限之处,在实际应用过程中应当依据具体情况选取最合适的手段加以实施。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值