社区
Oracle
帖子详情
查询varchar2类型的字段时存的数据是数字则查询时加单引号就查不到了
yabcn
2015-11-12 04:35:15
select * from web_user where usertype=1;这样查得到
select * from web_user where usertype='1' ;这样就查不到了
怎么回事??
...全文
1147
5
打赏
收藏
查询varchar2类型的字段时存的数据是数字则查询时加单引号就查不到了
select * from web_user where usertype=1;这样查得到 select * from web_user where usertype='1' ;这样就查不到了 怎么回事??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
蓝天白云jg
2018-08-03
打赏
举报
回复
是2018.8.3.15:00我遇到同样的错误,结果是数据里面多了一个空格,,,
蓝天白云jg
2018-08-03
打赏
举报
回复
2018.8.2我遇到同样的错误,结果是数据里面多了一个空格,,,
小灰狼W
2015-11-12
打赏
举报
回复
usertype 为字符型,并且为'01'或'001'之类的
yangyukun
2015-11-12
打赏
举报
回复
CREATE TABLE WEB_USER ( "ID" NUMBER, USER_TYPE VARCHAR2(1) ); INSERT INTO WEB_USER VALUES(1,'1'); INSERT INTO WEB_USER VALUES(2,'1'); INSERT INTO WEB_USER VALUES(3,'0'); INSERT INTO WEB_USER VALUES(4,'2'); INSERT INTO WEB_USER VALUES(5,'3'); SELECT * FROM WEB_USER WHERE USER_TYPE=1; 1 1 1 2 2 1 SELECT * FROM WEB_USER WHERE USER_TYPE='1'; 1 1 1 2 2 1 经过测试,都是可以的啊
zbdzjx
2015-11-12
打赏
举报
回复
刚才试了一下,应该都可以查的到啊。
mysql
varchar
类型
字段
为
数字
时,不带引号
查询
时
查询
结果与事实不符
背景 今天出现了一个bug,在
数据
库中我们将订单表中的order_no从之前的bigint(20)改成
varchar
(20)后,原有的代码逻辑在进行时
查询
时,之前是以Long
类型
传参
查询
的。 select * from order_main where order_no=16541913435669023 debug时的时候发现这条sql语句
查询
出来两条
数据
,另外一条毫不相关的订单也被查...
MySQL
查询
varchar
类型
时where条件不加引号问题
如果
查询
varchar
类型
不加引号最终是以
数字
的形式进行比较,如果字符串无法直接转换成
数字
,则字符串会进行前置
数字
正则匹配 摘录:https://www.cnblogs.com/sbhyc/p/10502308.html
为什么oracle中
字段
是
varchar
型,但是
查询
的时候不写引号也能
查询
隐形转换,一般是有方向的: 字符和
数字
比时,从字符转
数字
; 字符和时间比时,从时间转字符 数值和字符有时候会默认相互转化。
数据
类型
隐式转换,建议不要依赖隐式
数据
转换:能转换自然没问题,不能转换是报错;关键的是引起其他不可知问题:运行环境变了,原先正常的sql运行不了;性能问题 当你的条件为
数字
的时候(不管该
字段
为字符还
数字
型),直接写
数字
就可以
查询
。 但是为了书写规范,建议你
mysql
字段
内容有引号_Mysql
查询
时,对于数值型
字段
加
单引号
会引起的误解~
Mysql
查询
时,对于数值型
字段
加
单引号
会引起的误解~假设有表 tb1ID | name|----+--------+1 |2toon|2 |1*xyz|语句1:select * from tb1 where ID='2toon' or name ='2toon';mysql服务器在某模式下,可以执行这条句,就成功返回两条记录,原因在于 ID=‘2toon’ 加了
单引号
,mysql解释为...
mysql
查询
字段
未加引号问题及隐式转换
最近线上出了个问题,用户明明没有投票,却提示已投票,我
查询
数据
,刚开始没有查出
数据
,后来却查出
数据
了,以为没有问题,后来以为是插入的时候通过int
类型
插入,导致
varchar
类型
的索引没有添加这条索引(天真的想法),再后来看到查出来的
数据
和我
查询
的
数据
并不一致,最后一位不太相同,知道应该是发生了mysql隐式转化问题。接下来就来研究下不加引号或者加引号的情况。
Oracle
17,086
社区成员
55,238
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章