mysql中string和number的转换问题怎么解决(mysql,number,string,开发技术)

时间:2024-05-03 22:23:22 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    mysql%E4%B8%ADstring%E5%92%8Cnumber%E7%9A%84%E8%BD%AC%E6%8D%A2%E9%97%AE%E9%A2%98%E6%80%8E%E4%B9%88%E8%A7%A3%E5%86%B3

今天无意中发现一个很奇怪的现象,在写sql语句的时候,想筛选列值为空字符串的记录,结果把列值为0的记录也一起筛选出来了

当非同类型比较,等号两边分别为number和string之一时候,mysql会把string类型和number类型进行转换:

如''、'string'、'abc'等,会转换成0

eg:

如'123string'、'0123string'等,会取头部类型进行转换

eg:

如'string123'、'string0123'等,会取头部类型进行转换

eg:

如'123'->123、'023'->23等

eg:

eg:

所以针对我遇到的问题,mysql把''当成字符串处理,转换成了0,0=0,所以把列值为0的记录也一并筛选了出来

+号的处理方式同理:

如果+号两边类型不一致,则把string转换成number处理

然后这串数字就能变为16进制字符串,只需要加上0x的前缀!

UNHEX(‘14’) – 每对十六进制数字转化为一个字符。

UNHEX(‘14’),对应 SI, 该字符无法正确输出

但是ORDER BY UNHEX(‘14’) 是可以的。

本文:mysql中string和number的转换问题怎么解决的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Matlab如何实现黑洞优化算法下一篇:

42 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18