问题是这样子的 
有个表 记录了每个人的id 爱好(唱歌,看书,电脑,足球等等)他的爱好可以是一个也可以是很多 存的时候 可以认为是以字段存进去的 比如;
id     Hobbies
111    唱歌,看书,足球
222    足球,电脑
333    唱歌,电脑 
...... 
我现在查询条件是用复选框以数组的形式传过来的 比如传过来是 唱歌,电脑  我想查询爱好包括唱歌或是电脑的人 给显示出来 
请问我该怎么做啊 
用数组查询吗?是的话我该怎么写 

解决方案 »

  1.   

    只能一个一个查, checkbox会有数组传到你的程序,然后形成这样的SQL语句。
    select * from 有个表
    where Hobbies like '%唱歌%'
    or Hobbies like '%电脑%'
      

  2.   

    select * from tt2 where Hobbies regexp replace('唱歌,电脑',',','|')歌,22',',','|')
      

  3.   

    select * from tt2 where Hobbies regexp 
    replace('唱歌,电脑',',','|')
      

  4.   

    这样的话 条件就是and的意思了 我想要or德关系的
      

  5.   

    很久之前的一个贴子中的用法了。我自己都快忘了。利用mySQL中的正则式来判断。
    select * from 有个表
    where Hobbies REGEXP concat('*[',replace('唱歌,电脑',',','|'),']*')
      

  6.   

    稍作修改:
    select * from tt2 where Hobbies regexp
    concat('*[',replace('唱歌,电脑',',','|').']*')
      

  7.   


    报错,repetion-operator operand invalid 
    上网查了下 说是php语句 我用的是mysql和jsp
      

  8.   

    select * from 有个表
    where Hobbies REGEXP concat('.*[',replace('唱歌,电脑',',','|'),'].*')