MySQL把字符串转成数字类型

MySQL把字符串转成数字类型,第1张

    字符串类型数字默认在比较大小时,往往会遇到一些坑,例如:在10和9比较大小时字符串类型的数字会以为9比10大,但事实上我们想要比较的结果是10>9,这是为什么呢?其实字符串在比较大小时,比较的是它对应的ASCII码,1的ASCII码比9对应的ASCII码小,系统就会认为10<9。 这时我们可以使用MySQL的 CAST() 函数,将想要转换的字符串转换成想要的类型。

    例如:字符串‘123.45’可以转成整数,DECIMAL默认取得整数,也可以使用SIGNED

    当然也可以指定小数位数,5代表了要取的数字位数(整数位和小数位和),2代表要取到的小数位数。

        转换完成就可以用来进行后期的数值比较了!

技术mysql如何转换varchar这篇文章主要介绍了mysql如何转换varchar,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

本文主要介绍mysql如何转换varchar,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章后收获多多。让边肖带你去了解它。

mysql转换varchar的方法:1。使用强制转换函数进行转换;2.使用“从表名中选择-(-字段名;”模式转换;3.使用“从表名中选择字段名0;”模式转换。

本文 *** 作环境:windows7系统,mysql5.5版,戴尔G3电脑。

MySQL varchar类型转化:

问题:作为数据过滤模块,原来的表格设计有问题。表中的字段是字符串,过滤条件是数值,因此无法进行比较。

思考:你可以提取mysql字段字符串中的数字,然后进行比较。

解决:通过查阅资料,找到了三种方法。

1.使用cast函数

示例:SELECT CAST(字段名为UNSIGNED) FROM表名;

cast函数的语法规则是:Cast(作为转换的字段名的类型),其中类型可以是:

CHAR[(N)]代表:字符类型

DATE代表:日期类型

DATETIME代表:日期和时间类型

DECIMAL代表:浮点型

Ed代表:int

TIME代表:时间类型。对于以数字开头的字符串,将其转换为数字的结果是截取前一个数字部分。但是对于开头部分无法截取数字的字符串,转换结果为0,需要注意。

2.使用 -(-字段名)

示例:从表名中选择-(-字段名);

这太棒了,简单又粗鲁。

3.使用字段名直接+0,

例如:从表名中选择字段名0;

这仅用于内容都是varchar类型的数字的字段,不能包含中文或其他单词,否则将报告错误。一般建议使用1,2。

数字转字符

mysql> SELECT CONCAT ( CAST(1 as char) , '2') AS test

+------+

| test |

+------+

| 12   |

+------+

1 row in set (0.00 sec)

mysql> SELECT CONCAT ( Convert(1, char) , '2') AS test

+------+

| test |

+------+

| 12   |

+------+

1 row in set (0.00 sec)

字符转数字

mysql> SELECT CAST('1' as SIGNED) + 100 AS test

+------+

| test |

+------+

|  101 |

+------+

1 row in set (0.00 sec)

mysql> SELECT Convert('1' , SIGNED) + 100 AS test

+------+

| test |

+------+

|  101 |

+------+

1 row in set (0.00 sec)


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存