u013181082
twostorytown
采纳率60%
2016-08-14 07:06 阅读 977
已采纳

SQL语句约束问题求教。。

10

新建一表,要使一字段中不出现I、i、O、o、Q、q,以下写法有什么问题吗。。。
X char(17) check (X not like'%I%i%O%o%Q%q');
如果有的话还请指正,不胜感激。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    zcyzsy Zmyths 2016-08-16 02:26

    楼上的逻辑有问题,首先分开是对的,但应该是用and。几个字符都不允许出现的。
    (X not like '%I%') and (X not like '%i%') and (X not like '%O%') ...

    点赞 评论 复制链接分享
  • shingoscar Poopaye 2016-08-14 10:50

    (X not like '%I%') or
    (X not like '%i%') or
    ……
    每个字母要单独分开来写

    点赞 评论 复制链接分享
  • hyp520520 hyp520520 2016-08-14 11:07

    你的这个一串'%I%i%O%o%Q%q'写成这样是有问题的吧

    点赞 评论 复制链接分享
  • theforever 碧海情天-赵亮 2016-08-15 05:37

    用INSTR看是否存在那些字符,效率更高。
    不过,这样进行约束是很不适当的。
    应该在存数据之前判断,有就不存入。

    点赞 评论 复制链接分享

相关推荐