表1 字段lteCountry里面有101010101000001之类的码
传进来一个countryCode 23然后查询lteCountry的23位是0或者1,所有这个字段是0的这条记录就作为结果返回,还要再去country表去查询countryCode 为23的记录是否与传进来的另一个参数countryName 英国 是否存在。这样sql怎么写?帮帮忙,谢谢!

解决方案 »

  1.   

    传进来一个countryCode 23然后查询lteCountry的23位是0或者1,所有这个字段是0的这条记录就作为结果返回, select *
    from 表1
    where SUBSTRING(lteCountry,23)='0'
        [align=center]====  ====
    [/align]
      

  2.   

    还要再去country表去查询countryCode 为23的记录是否与传进来的另一个参数countryName 英国 是否存在。 没看懂你的意思,建议给些例子,否则很难猜。
        [align=center]====  ====
    [/align]
      

  3.   

    是两个表,一个是产品表,一个是国家表,产品表里有字段lteCountry,这个是1010101的码,国家表有个countryCode是1,2,3,4,...... 这样的排序码,select 产品表,程序传进来国家的顺序码例如说23,这样就来查lteCountry 101010的码的第23三位上是0就代表这个产品是允许这个国家的购买的,这样数据库里所有允许的都取出来,显示给用户看,这个是主要的查询。另外就是还要属于安全的验证,去国家表去查询countryCode 为23的记录是否与客户端传进来的另一个参数countryName 英国 对比是否存在。就是这样的。能用一个sql语句完成吗?
      

  4.   

    liuyann的思路是对的,可是substring截出来的是数字后面的所有字,而我只是想要指定的位数上的字符是什么。
      

  5.   

    你稍微变一下liuyann给的答案不就行了??select *
    from 表1
    where SUBSTRING(lteCountry,23,1)='0'
      

  6.   

    可我们根本猜不出你的表结构是什么啊。你把表结构还是数据样本贴出来。你知道的东西并不是别人都知道的。
        [align=center]====  ====
    [/align]