首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • select 1 where ''=0 为什么返回1 [已结贴,结贴人:yczealot]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yczealot
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-08-20 10:53:15 楼主
    有点不明白,请大家指教
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • alisafan123
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 10:54:041楼 得分:0
    0
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mugua604
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 10:56:382楼 得分:0

    select cast('' as int)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mugua604
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 10:57:113楼 得分:20
    select cast('' as int)
    -----------
    0

    (1 行受影响)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • happyflystone
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 4

      5

    发表于:2008-08-20 10:58:044楼 得分:10
    引用 3 楼 mugua604 的回复:
    select cast('' as int)
    -----------
    0

    (1 行受影响)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • only_endure
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 10:58:485楼 得分:10
    select 1 where ''=0 为什么返回1
    =====
    条件满足,所以返回1,请参考3楼所述
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • flairsky
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 10:59:356楼 得分:10
    默认转换了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HEROWANG
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 11:00:257楼 得分:10
    select 1 where ''=0 为什么返回1

    查询的时候把‘’转换为整型数据为0,0=0条件为真,自然就返回1了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • roy_88
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

      4

    发表于:2008-08-20 11:00:298楼 得分:10
    int類型優先於字符型
    以上會把空字符轉換為int時為0;
    表達式條件為:0=0
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • roy_88
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

      4

    发表于:2008-08-20 11:01:259楼 得分:20
    SQL Server 2005 會使用下列資料類型優先順序:

    使用者自訂資料類型 (最高)


    sql_variant


    xml


    datetime


    smalldatetime


    float


    real


    decimal


    money


    smallmoney


    bigint


    int


    smallint


    tinyint


    bit


    ntext


    text


    image


    timestamp


    uniqueidentifier


    nvarchar


    nchar


    varchar


    char


    varbinary


    binary (最低)

    以上為類型優先順序
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wufeng4552
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 11:01:5410楼 得分:5
    select 1 where ''=0
    ''=0成立~~~
    数据类型隐式转换
    个人理解~~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Liyingyue_FFS
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 11:10:2411楼 得分:5
    引用 2 楼 mugua604 的回复:

    select cast('' as int)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • roy_88
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

      4

    发表于:2008-08-20 11:20:0412楼 得分:0
    兩個不同類型做比較時,SQL會根據兩種類型的優先級進行轉換再比較,處理時可用顯性轉換如: ''=cast(0 as nvarchar(100))
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wgzaaa
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-20 11:23:0713楼 得分:0
    中国风 的优先顺序  加  水族杰綸的  隐性转换,就可以解释了
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved