如产生流水号的自定义规则为:
自定义|日期|流水号
具体规则为:
LS|yyyyMM|000问题:如何在数据库中找出符合LS|yyyyMM|000这个规则的流水号?

解决方案 »

  1.   

    用substr()取第三位是|和第十位是|还是后三们是000sql用不了正则是麻烦点,不过还是可以取出来的查查sql的字符函数吧,里面会有你用到的
      

  2.   

    假如有两种类型的流水号:
    (1)LS|yyyyMM|000, 实际流水号比如:LS201002001
    (2)LS|yyyyMM|/|000, 实际流水号比如:LS201002/001
    注:这些流水号在同一列中
    问题:我现在要找出符合LS|yyyyMM|000类型的流水号,怎么找?
      

  3.   

    好像不难吧:
    你把从数据库里面读出来的流水号(num), num.remove("|","")这样就把"|"去掉了,
    if( num.remove("|","")=="LS201002001" || num.remove("|","")=="LS201002/001")
    {
       你的操作;
    }
      

  4.   

    create table test
    (
    name varchar(20)
    )insert into test values('LS201002001')
    insert into test values('LS201002/001')
    insert into test values('LS201002\001')select *from test
    -------1
    select *from test where name like 'LS[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or name like 'LS[0-9][0-9][0-9][0-9][0-9][0-9]/[0-9][0-9][0-9]'
    -------2
    select *From test where name like 'LS[0-9]%[0-9][0-9][0-9][0-9]' or name like 'LS[0-9]%/[0-9][0-9][0-9]'
    这是应急的,很痛苦
      

  5.   

    我说的已经够清楚的啦,我给你一个流水号:LS201002/001 属于LS|yyyyMM|000 类型,你找出符合这个类型的所有记录
    数据如下:
    LS2010/001
    XL001Amin20100226
    LS201002/002
    CCaaa2010.001
    LS201002/005
    你现在找出记录:
    LS201002/002
    LS201002/005
    就行了(流水号还可能有更复杂的,XL001Amin20100226的规则是:自定义|流水号|用户名|日期,具体格式:XL|000|User|yyyyMMdd,其中user代表用户名,是可变的)认为简单的话就写出代码。