duanchai0028 2015-03-01 18:44
浏览 344
已采纳

从mysql中删除数据中的逗号

I have a web api with a function:

function fodboldStream() {
  //$timezone = date_default_timezone_get('Europe/Copenhagen');
  //$date = date('Y-m-d');

    $result = query("SELECT kampe2.dato,kampe2.id,kampe2.sqltime, kampe2.tidspunkt,kampe2.hiddenmatch,  turneringer.turnering, turneringer.image, holdH.hold AS hjemmehold, holdU.hold AS udehold, holdH.imagebig AS hjemmeimage, holdU.imagebig AS udeimage, tvkanal.kanal,tvkanal.imageny, kampe2.optakt, kampe2.info, kampe2.type 
                     FROM kampe2 
                     INNER JOIN turneringer ON kampe2.turnering=turneringer.id
                     INNER JOIN tvkanal ON kampe2.kanal1=tvkanal.id 
                     LEFT OUTER JOIN hold holdH ON holdH.id = kampe2.hjemmehold
                     LEFT OUTER JOIN hold holdU ON holdU.id = kampe2.udehold
                     WHERE kampe2.hiddenmatch=0  AND kampe2.dato >= cast((now()) as date) ORDER BY kampe2.tidspunkt ");

  if (!$result['error']) {
    print json_encode  ($result);
  } else {
    errorJson('fodbold stream is broken');
  }

}

This gives me an array like this:

result = (
    {
        dato = "2015-03-01";
        hiddenmatch = 0;
        hjemmehold = "Val\U00e8ncia CF";
        hjemmeimage = "1775.png";
        id = 7571;
        image = "5_ll.png";
        imageny = "Canal9.png";
        info = "";
        kanal = "Canal 9";
        optakt = "11:55";
        sqltime = 1425207600;
        tidspunkt = "12:00";
        turnering = "Liga BBVA";
        type = "";
        udehold = "Real Sociedad";
        udeimage = "1742.png";
    }

My problem is that tvkanal.kanal only gives me 1, the row in the table is 11, 61, 45.

How do I, in this 1 query get them as tvkanal1 = x tvkanal2 = x and tvkanal3 there can be from 1 to 3 "tvkanal"?

If I use find in set:

$result = query("SELECT kampe2.dato,kampe2.id,kampe2.sqltime, kampe2.tidspunkt,kampe2.hiddenmatch,  turneringer.turnering, turneringer.image, holdH.hold AS hjemmehold, holdU.hold AS udehold, holdH.imagebig AS hjemmeimage, holdU.imagebig AS udeimage, kampe2.optakt, kampe2.info,GROUP_CONCAT(tvkanal.image) as TVimg, kampe2.type 
                     FROM kampe2 
                     INNER JOIN turneringer ON kampe2.turnering=turneringer.id
                     INNER JOIN tvkanal ON FIND_IN_SET(tvkanal.id, kampe2.kanal1)>0
                     LEFT OUTER JOIN hold holdH ON holdH.id = kampe2.hjemmehold
                     LEFT OUTER JOIN hold holdU ON holdU.id = kampe2.udehold
                     WHERE kampe2.hiddenmatch=0  AND kampe2.dato >= cast((now()) as date) ORDER BY kampe2.tidspunkt ");

I get :

result = (
    {
      TVimg = "ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,TV3-Sport-1-v2.png,TV3-Sport-1-v2.png,3Plus-Logo-v2.png,canal9-v3.png,TV3-Sport-1-v2.png,canal8-v3.png,TV3-Sport-1-v2.png,3Plus-Logo-v2.png,TV3-Sport-1-v2.png,TV3-Sport-1-v2.png,TV3-Sport-1-v2.png,canal9-v3.png,canal8-v3.png,canal9-v3.png,TV3-Sport-1-v2.png,3Plus-Logo-v2.png,TV3-Sport-1-v2.png,canal8-v3.png,TV3-Sport-1-v2.png,TV3-Sport-1-v2.png,3Plus-Logo-v2.png,canal9-v3.png,TV3-Sport-1-v2.png,canal8-v3.png,TV3-Sport-1-v2.png,TV3-Sport-1-v2.png,TV3-Sport-1-v2.png,3Plus-Logo-v2.png,canal8-v3.png,TV3-Sport-1-v2.png,canal9-v3.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke-fastlagt.png,ikke";
      dato = "2015-06-07";
      hiddenmatch = 0;
      hjemmehold = "FC Vestsj\U00e6lland";
      hjemmeimage = "555.png";
      id = 6180;
      image = "Alka-superliga2.png";
      info = "";
      optakt = "";
      sqltime = 1433685600;
      tidspunkt = "16:00";
      turnering = "Alka Superligaen";
      type = "";
      udehold = "Silkeborg IF";
      udeimage = "551.png";
    }
);
}

I'm doing some work.

  • 写回答

2条回答 默认 最新

  • dsp1836 2015-03-03 11:01
    关注

    i made a new function :

    function fodboldTVKanalerStream($kampId) {
    
    
    
        $result = query("SELECT kampe2.dato, GROUP_CONCAT(tvkanal.imageny) as TVimg
                                      FROM kampe2 
                                      INNER JOIN tvkanal ON FIND_IN_SET(tvkanal.id, kampe2.kanal1)>0
                                      WHERE kampe2.hiddenmatch=0 AND kampe2.id='%d' AND kampe2.dato >= cast((now()) as date) ORDER BY kampe2.tidspunkt",$kampId);
    
    if (!$result['error']) {
        print json_encode($result);
    } else {
        errorJson('TvImage stream is broken');
    }
    
    }
    

    and the i do the split in object c like this:

     NSString *thisGameId = [game objectForKey:@"id"];
        //...........tv image handling ...............................
        [API sharedInstance].imagePath = [NSString stringWithFormat:@"images/TVkanaler/new/"];
        [[API sharedInstance] commandWithParams:[NSMutableDictionary dictionaryWithObjectsAndKeys:@"fodboldTVKanalerStream", @"command",thisGameId,@"kampId", nil] onCompletion:^(NSDictionary *json) {
    
            NSArray *daTa = [json objectForKey:@"result"];
    
    
            NSArray *tvimages = [daTa mutableArrayValueForKey:@"TVimg"];
    
            NSString *joinedComponents = [tvimages componentsJoinedByString:@","];
    
            NSArray* myArray = [joinedComponents  componentsSeparatedByString:@","];
    
            if (myArray.count <2) {
                NSString* firstString = [myArray objectAtIndex:0];
    
                // .......... making the sever call .........................
                API* api = [API sharedInstance];
                NSURL* imageURL = [api urlForImageWithId:firstString  isThumb:NO];
                AFImageRequestOperation* imageOperation = [AFImageRequestOperation imageRequestOperationWithRequest: [NSURLRequest requestWithURL:imageURL] success:^(UIImage *image) {
    
                    //create an image view, add it to the view
    
                    cell.chanelImageView.image = image;
                    cell.chanel2ImageView.image = Nil;
                    cell.paddingImageView2.hidden = YES;
    
                }];
    
                NSOperationQueue* queue = [[NSOperationQueue alloc] init];
                [queue addOperation:imageOperation];
    
    
                //NSLog(@"1 billede %@",firstString);
            }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 目标计数模型训练过程中的问题
  • ¥100 Acess连接SQL 数据库后 不能用中文筛选
  • ¥15 用友U9Cloud的webapi
  • ¥20 电脑拓展屏桌面被莫名遮挡
  • ¥20 ensp,用局域网解决
  • ¥15 Python语言实验
  • ¥15 我每周要在投影仪优酷上自动连续播放112场电影,我每一周遥控操作一次投影仪,并使得电影永远不重复播放,请问怎样操作好呢?有那么多电影看吗?
  • ¥20 电脑重启停留在grub界面,引导出错需修复
  • ¥15 matlab透明图叠加
  • ¥50 基于stm32l4系列 使用blunrg-ms的ble gatt 创建 hid 服务失败