如我的一个表字段格式定义成“1,2,3,4|1,2,3,4|3,1,2”,我如何查询得到符合第一个“|”分割符前保含“2”的数据???请不吝赐教!谢谢!

解决方案 »

  1.   

    假设你的字段是a,表为t
    select a from t where instr(substring(a,1,instr(a,'¦')-1),'2') != 0;
      

  2.   

    to yueliangdao0608:假如我字段里有“1,2,212,3,31 ¦1,2,3,4 ¦3,1,2”这样的值,怎么把2 跟 212等之类的值区分出来?还有这样的SQL语句查询效率如何啊
      

  3.   

    create table lk(a char(100)) engine=myisam;
    insert into lk select '1,2,212,3,31 |1,2,3,4 |3,1,2';
    select substring(a,1,instr(a, '|')-1) from lk where instr(substring(a,1,instr(a, '|')-1), '2') != 0;然后写个循环吧。建议把取出来的数据放到程序端处理。这样会降低服务器端的开销。