select c.attr_value from ecs_goods_attr c 
inner join ecs_goods a 
on c.goods_id=a.goods_id 
where a.goods_name='s020039' and c.attr_value <>'apson'上面的select语句查出来的c.attr_value是一个用换行分开的n个字符串,我想把他们用换行分开,然后得到这n个值,
请问用select怎么写?

解决方案 »

  1.   

    呵呵,我的SQL语句吧,要拆分字符串,贴记录及正确结果出来看看
      

  2.   

    这样是查出来的结果:Stylus 800Stylus 1000
    Stylus 800和Stylus 1000中间是以回车的行式存在数据库中的... 结果是1个
    想得到的结果:Stylus 800和Stylus 1000,用回车分开,结果是2个
      

  3.   

    ecshop的ecs_goods_attr表
    应该是varchar类型 的吧 
      

  4.   

    我上面从数据库查出来的实际是一个结果,Stylus 800\r\nStylus 1000 ,一个字符串
    而我想的是要Stylus 800\r\nStylus 1000 中间的回车把它们分开,得到
    Stylus 800,Stylus 1000两个结果,我描述明白了吗
      

  5.   

    你的查询结果是:
    Stylus 800\r\nStylus 1000  一条记录
    你想要得到:
    Stylus 800
    Stylus 1000两条记录是这样?
      

  6.   

    Stylus 800,Stylus 800,这两个值是我从textarea里面读取到数据库里面的,在textarea中,一行是Stylus 800,然后我按回车,输入另一行Stylus 800,这样我存在数库中的它们两个就是它们两个再加上中间一个回车.
    sql语句中我取出它们要用回车再把它们分开,就这样..上面\r\n不是字符串,而是回车的标识..
    没明白的话我再解释
      

  7.   

    sql语句中我取出它们要用回车再把它们分开:
    类似于:
    select concat('123',char(13),char(10),'456')
      

  8.   

    谢谢大家,太谢谢了,我做出出来了,谢谢你们...
    特别感谢wwwwa的帮助....
      

  9.   

    我那个结果没有在sql语句中写,而是取出结果,然后在进行其它的运算...
      

  10.   

    我不知道你做什么开发啊...我弄的PHP
      

  11.   

     $sql = "select c.attr_value from ".$ecs->table('goods_attr')." c inner join ".$ecs->table('goods')." a on c.goods_id=a.goods_id 
    where a.goods_name='$_REQUEST[goods]' and c.attr_value <>'$_REQUEST[goodscat]'";
    $page       = !empty($_REQUEST['page'])  && intval($_REQUEST['page'])  > 0 ? intval($_REQUEST['page'])  : 1;
    $size       = !empty($_CFG['page_size']) && intval($_CFG['page_size']) > 0 ? intval($_CFG['page_size']) : 10;
    $display = 'grid';
    $query = $db->query($sql);
    $result = $db->fetchRow($query);

    $goodsname = array();$gdname = array();
    foreach($result as $value){
    $goodsname = explode("\r\n",$value); }//在这儿得到$gdname 
    $gdname = array();
    foreach($goodsname as $me){
    $num = preg_match("/^(\s+|)$/",$me);
    if($num==0){
    $gdname[] = $me;
    }
    } print_r($gdname);
    $count = count($gdname);


    $sql = "SELECT g.goods_id, g.goods_name, g.et_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ".
                    "g.promote_price, g.promote_start_date, g.promote_end_date, g.goods_thumb, g.goods_img, g.goods_brief, g.goods_type ".
                "FROM " .$ecs->table('goods'). " AS g where g.goods_name in ("; $num=0;
    //在这运用它,就不用写那么复杂的sql了.
    foreach ($gdname as $value){
    $num++;
    if($num==$count){
    $sql .= "'".$value."'";
    }
    else{
    $sql .= "'".$value."',";
    }
    }
    $sql .= ")";然后再进行查询之类的...