id| ugzsj |
---------------------------------------+
1|  周二|周四|周五|周日|平时夜晚|节假日|暑假|任意时间|2| 周一| 周二|周五|周日|平时夜晚|节假日|暑假|3| 周三| 周五|周日|平时夜晚|寒假|
现在提交的条件例如是:  周二|周五|平时夜晚|暑假查处所有ugzsj字段中包含    周二|周五|平时夜晚|暑假   的数据  (ugzsj中式用“ |” 做分割)select id  from  table where ugzsj=??????结果是: 1  2不知道该这么写,高手指导下

解决方案 »

  1.   

    参考下贴REGEXP 正则的实现两个字符串组的匹配。 
    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/01/4141864.aspx
      

  2.   

    select * from tt where ugzsj regexp '周二|周五|平时夜晚|暑假'
      

  3.   


    我的意思是:ugzsj  中 周二,周五,平时夜晚,暑假,都在周二|周四|周五|周日|平时夜晚|节假日|暑假|任意时间|中才显示出来,并不是 '周二|周五|平时夜晚|暑假' 满足 周二|周四|周五|周日|平时夜晚|节假日|暑假|任意时间|  其中一个就可以显示~~~~
      

  4.   

    mysql> select * from t_mlsml;
    +------+----------------------------------------------------+
    | id   | ugzsj                                              |
    +------+----------------------------------------------------+
    |    1 | 周二|周四|周五|周日|平时夜晚|节假日|暑假|任意时间| |
    |    2 | 周一|周二|周五|周日|平时夜晚|节假日|暑假|          |
    |    3 | 周三|周五|周日|平时夜晚|寒假|                      |
    +------+----------------------------------------------------+
    3 rows in set (0.00 sec)mysql> select * from t_mlsml where '周二|周五|平时夜晚|暑假' not regexp concat('[^',ugzsj,']');
    +------+----------------------------------------------------+
    | id   | ugzsj                                              |
    +------+----------------------------------------------------+
    |    1 | 周二|周四|周五|周日|平时夜晚|节假日|暑假|任意时间| |
    |    2 | 周一|周二|周五|周日|平时夜晚|节假日|暑假|          |
    +------+----------------------------------------------------+
    2 rows in set (0.00 sec)mysql>