假如我的表中有这么几个ID
我想查--查询学号倒数第二位为3--,
我就用了这个语句1 ,
select stuid from G_stuinfo
where stuid like '%3_'  --这句是没有显示的,为什么呢?语句2
select stuid from G_stuinfo
where stuid like '___3_'  --这个是因为我事先知道了ID是五位的,才写这个,可是呢,还是没有显示的。语句3
select stuid from G_stuinfo
where stuid like '___3%'  --这个才能正确显示我想要的,可是这个表示的不是--学号倒数第二位为3--吧,
这个是什么啊,有没有那位大大满足我小小的心愿的!

解决方案 »

  1.   

    就是当我执行
    select stuid from G_stuinfo 
    后是这个
      

  2.   

    stuid  是什么类型的?varchar 还是 int ?
      

  3.   

    在回之前,我也以为是楼主把int和varchar型搞混了,但我在自己的数据库上试了一下,int型的也可以用 like '%X_'这样的方式进行查找,看来不是!关键是楼主这个问题应该不会出现的,试了N次都正常得很
      

  4.   

    可以使用下面例句,测试问题:
    mysql> SELECT 1230' LIKE '%3_';
            -> 1------------------------------------------------------
    另外:
    In MySQL, LIKE is allowed on numeric expressions. 
    (This is an extension to the standard SQL LIKE.) mysql> SELECT 10 LIKE '1%';
            -> 1
      

  5.   

    大家 太好了!就是因为是数据类型的问题啊,
    老师给我的题目里是char(10),只有在
    select stuid from G_stuinfo 
    where stuid like '%3______'  ---后面再加上五个空格才行,本来我想把老师的表改一下的,可是主键是不是不能通过
    alter table G_stuinfo modify stuid varchar(10), 来改的,不让 改!