SELECT * FROM TABLE_NAME WHERE NAME IN ('A','B');

解决方案 »

  1.   

    用fulltext搜索吧,SELECT 
    key,
             name,
             MATCH (name) AGAINST ('a b' IN BOOLEAN MODE)AS score
      FROM `tablename` 
      WHERE MATCH (name) AGAINST ('a b' IN BOOLEAN MODE)
    ORDER BY score DESC;
      

  2.   

    fulltext好像只是匹配一个单词,不能匹配单个的字母
      

  3.   

    SELECT * FROM TABLE_NAME WHERE NAME IN ('A','B');
    这句好像什么都搜不出来啊
      

  4.   

    SELECT * FROM TABLE_NAME WHERE NAME LIKE '%A%' OR NAME LIKE '%B%';这下应该有资料了吧
      

  5.   

    被索引的词的最小长度由 MySQL 变量 ft_min_word_len 指定
    ft_min_word_len=1
      

  6.   

    SELECT * FROM TABLE_NAME WHERE NAME LIKE '%A%' OR NAME LIKE '%B%';
    如果条件是 a b c d e f g ...这样的话,bluefiend兄台,怎么解决???
    有a b c d e f g ...的排在最上面,a  c d e f g ...的下面一点,。
    我不死了
      

  7.   

    被索引的词的最小长度由 MySQL 变量 ft_min_word_len 指定
    ft_min_word_len=1
    这个我试试先:)
      

  8.   

    把条件放到一个字符串类型变量a里,然后转换成字符串类型数组b,再循环生成一个字符串z,例如条件是"a b c",则可以转化成数组b[0]="a",b[1]="b",b[2]="c",z则可以用循环的方法得到
      1.for(int i=0;i<b.length;i++){
         if(i==b.length)
           z+=" name like '"+b[i]+"'";
         else
           z+=" name like '"+b[i]+"' and";
       }
      2.for(int i=0;i<b.length;i++){
         if(i==b.length)
           z+=" name like '"+b[i]+"'";
         else
           z+=" name like '"+b[i]+"' or";
       }定义字符串变量sql="select * from tablename where";
    则查询语句就是sql+z
      

  9.   

    搞错了,应该是like '%"+b[i]+"%'
      

  10.   

    这样的查询,我想一定要用到 like 模糊查询,
    helam(小渊) 的方法看上去可以?
     你可以试试呀!
      不可的话,再反馈一下
      

  11.   

    1.for(int i=0;i<b.length;i++){
         if(i==b.length)
           z+=" name like '"+b[i]+"'";
         else
           z+=" name like '"+b[i]+"' and";
       }
      2.for(int i=0;i<b.length;i++){
         if(i==b.length)
           z+=" name like '"+b[i]+"'";
         else
           z+=" name like '"+b[i]+"' or";
       }我当然知道这么做了,这个只是把东西搜出来,关键是排序啊!!!!比如说条件是a b c那么有a b c的结果当然放在最上面,
    有a b 和 a c的接下来
    只有a或b或c的最下面我觉得怎么也得用到一个“匹配程度”吧??聆听建议。
      

  12.   

    是英文的系统。现在我把 ft_min_word_len 设成2了,但是在搜索 “egg”这类的还是显示不出来语句是这样的SELECT 
       nCardName, 
       MATCH (nCardName) AGAINST ('egg') AS score
    FROM 
      `ncard` 
    WHERE 
       MATCH (nCardName) AGAINST ('egg');nCardName是fulltext的名字,现在egg在数据库里有200多条,但是一个也没有显示,
    还有ft_min_word_len的值已经设成2了我晕
      

  13.   

    用fulltext是可行的
    上面是我弄错了
    ft_min_word_len的值没有设对我是这么一个步骤设ft_min_word_len的1.关闭mysql server
    2.用cmd进入控制台,到达mysql的目录
    3.在控制台中输入 mysqld --set-variable=ft_min_word_len=1这样之后,在此时ft_min_word_len的值是1,但是当我重启mysql server之后,
    ft_min_word_len的值又返回的default值4了,望做过这方面的仁兄指点一下
    正确的步骤应该是怎样的!!!
      

  14.   

    还有一个问题:fulltext能对单个的字母进行搜索么我现在返回的结果都是单个的单词比如说数据库里面有很多的egg记录但是如果你只搜索eg的话,那些egg记录就显示不出来这个和用like有很大的不同问一下怎么能解决这个问题
      

  15.   

    ft_min_word_len修改后,需重建你的 FULLTEXT 索引
      

  16.   

    sure. i hava done!我只是想知道:fulltext能对单个的字母进行搜索么我现在返回的结果都是单个的单词比如说数据库里面有很多的egg记录但是如果你只搜索eg的话,那些egg记录就显示不出来问一下怎么能解决这个问题
      

  17.   

    问题得到了一些解决
    但是还有一些麻烦现在是这么一个语句:SELECT 
    nCardName,
    MATCH (nCardName) AGAINST ('*carrot*'  IN BOOLEAN MODE) AS score,
    nCardCountFilter 
    FROM 
    ncard我想得到的结果集是象这样的: 'rcarrots','tcarrots','carrots'...但是现在只能得到象这样的结果集: 'carrots'....就是说用'*'好匹配之后,只能后匹配,不能前匹配谁能告诉我前匹配的方法我可以将我csdn上的分数--500分亲囊相送...
      

  18.   

    select 0,* from 表 where name like 'a' and name like 'b'
    union all
    select 1,* from 表 where name like 'a' or name like 'b'
    order by 1,key
      

  19.   

    select 0,* from 表 where name like 'a' and name like 'b'
    union all
    select 1,* from 表 where name like 'a' or name like 'b'
    order by 1,key
      

  20.   

    select 0,* from 表 where name like '%a%' and name like '%b%'
    union all
    select 1,* from 表 where name like '%a%' or name like '%b%'
    order by 1,key
      

  21.   

    select 0,* from 表 where name like '%a%' and name like '%b%'
    union all
    select 1,* from 表 where name like '%a%' or name like '%b%'
    order by 1,key???什么意思???
      

  22.   

    你的条件太多的话,这个SELECT是组成不出来的,建议你把问题发出来,大家帮你分析分析,换一种查询的思路。
      

  23.   

    select 0,* from 表 where name like '%a%' and name like '%b%'
    union all
    select 1,* from 表 where name like '%a%' or name like '%b%'
    union all
    select 2,* from 表 where 条件
    union all
    select 3,* from 表 where 条件
    order by 1,key
      

  24.   

    这个就是我的问题啊首先,用的数据库是mysql,版本4.0以上都可以。对一个字段进行搜索 比如:name,现在输入一个条件“a b”,就是a或者b,现在要求:1。把a和b都有的记录放在最上面,
    2,只有a或者b的接着,他们根据另一个字段,比如key排序当然,条件也可能是“a b c”或者“a b c d”,或者...希望走过路过的朋友,提出您的建议!