社区
MySQL
帖子详情
mysql以数字开头的字符串字段,查询条件字段值等于特定数字时,为何查询结果为以数字开头的数据
weixin_41097949
2018-07-18 04:24:09
如有一表test:id, type;
数据如下:
1,3a;
2,3b;
3, 5s;
select * from test where type = 3;
得到的结果为:请问这是为什么?
1,3a;
2,3b;
...全文
875
7
打赏
收藏
mysql以数字开头的字符串字段,查询条件字段值等于特定数字时,为何查询结果为以数字开头的数据
如有一表test:id, type; 数据如下: 1,3a; 2,3b; 3, 5s; select * from test where type = 3; 得到的结果为:请问这是为什么? 1,3a; 2,3b;
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Rotel-刘志东
2018-07-19
打赏
举报
回复
数据类型不一样一定是做转换的,否则不同的类型怎么去对比比较。要把你的type类型转化为数字类型的。
zjcxc
2018-07-19
打赏
举报
回复
type=3
这两个的数据类型不一样,所以会转换为一样一类型再做比较,按照 mysql 的转换规则,会把 type 转成数字,而 3a,3b,3c 转成数字的结果就是 3,所以=3
你可以直接验证一下: select cast('3a' as signed);
同时,查询后执行 show warnings 时会看到相关的警告信息
weixin_41097949
2018-07-19
打赏
举报
回复
#5 zjcxc,您这么解释,我算通了,非常感谢。mysql做了转换,当查询条件为“字符串字段=数字”,mysql截取前端整数数字部分转换为整数型,再与给出的条件值比较。但mysql的这个规则不知是好还是不好。比如例中,按正常思维希望客户输入“3c”时才能看到“3c”这条记录,但客户输入3时,把“3a,3b,3c"都列出来了。
weixin_41097949
2018-07-18
打赏
举报
回复
二楼,您用 select * from test where type=3; 查询得出的结果是不是:
id type
1 3a
2 3b
3 3c
weixin_41097949
2018-07-18
打赏
举报
回复
感谢二位的热情解答,我的type是varchar型的,二楼您写的查询我能理解,我不能理解的是:我写的这个查询语句看起来应该是错误的,会报语法错误,或者查询结果为空,可结果是没有料想到的
iamboy_11
2018-07-18
打赏
举报
回复
根据你发的问题,我觉得应该这样写:
select * from test where type like '4%' 或者 select * from test where left(type,1) = 4
luyaran
2018-07-18
打赏
举报
回复
你的type的字段类型是什么啊?????
mysql
查询
字符串
类型的
字段
使用
数字
类型
查询
时
问题
问题
查询
记录表
数据
时
,出现有空格的脏
数据
:
数据
前面存在空格,如图 原因 当
MySQL
字段
类型和传入
条件
数据
类型不一致
时
,会进行隐形的
数据
类型转换; 若
字符串
是以
数字
开头
,且全部都是
数字
,则转换为
数字
结果是整个
字符串
; 部分是
数字
,则转换为
数字
结果是截止到第一个不是
数字
的字符为止。 理解: varchar str = “1111aaaa”,转换为
数字
是1111。 若
字符串
不是以
数字
开头
,则转换为
数字
结果是 0 。 varchar str = “aabb33” ; 转换为
数字
是 0 。 ...
mysql
在查
字符串
字段
中
条件
参数传为
数字
0查到与实际
数据
不匹配问题
用
数字
查
字符串
会把
字符串
数据
转化为
数字
开头
,所有非
数字
开头
字符串
都是以0
开头
故查到以下
数据
。用
数字
2查则匹配到2
开头
的
字符串
。
mysql
使用
数字
字符串
查询
字符串
类型
字段
查询
结果不正确的问题
mysql
使用
数字
字符串
查询
字符串
类型
字段
查询
结果不正确的问题
mysql
查询
为
数字
开头
的字符
我整理的一些关于【
字符串
】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/bLN8S1使用
MySQL
查询
以
数字
开头
的字符 在
数据
库管理中,
MySQL
是最常用的关系
数据
库之一。我们常常需要从
数据
库中提取
特定
的
数据
,例如以
数字
开头
的
字符串
。在这篇文章中,我们将探讨如何在 M...
mysql
查询
以
数字
开头
的信息_
MySQL
REGEXP提取以
特定
数字
开头
的
字符串
+
数字
记录?...
为此,请使用REGEXP并获取以
特定
编号
开头
的记录。以下是语法:SelectyourColumnName1,yourColumnName2fromyourTableNamewhereyourColumnName2REGEXP'^yourStringValue[yourNumericValue]';让我们创建一个表-
mysql
>createtabledemo45->(−...
MySQL
56,912
社区成员
56,754
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章