循环得到一条记录中每个字段里的数据

 DictTable                       dt = new DictTable(tableNum(CustTable));
 DictField                        df;
 CustTable                     custTable
  
 int                                  countField,
                                       i;
 countField                     = dt.fieldCnt();  
        
  custTable                      = CustTable::find("C00001");
    for(i = 1; i<= countField; i++)
    {
        df                          = new DictField(tableNum(CustTable), dt.fieldCnt2Id(i));
        if(df.isSystem())
        {
            continue;
        }
        info(strfmt("%1",  custTable.getFieldValue(df.name())));
    }
 }x
假设你的数据表名为 `my_table`,有一个字段名为 `my_field`,其每个记录都是由逗号分隔的字符串。你可以使用 MySQL 的 `SUBSTRING_INDEX()` 函数和 `LENGTH()` 函数来循环遍历每个字段。 具体来说,以下是一个示例查询语句,它将会遍历 `my_table` 表每个记录,将 `my_field` 字段每个以逗号分隔的值取出来: ``` SELECT SUBSTRING_INDEX( SUBSTRING_INDEX(my_field, ',', numbers.n), ',', -1 ) AS value FROM my_table CROSS JOIN ( SELECT a.N + b.N * 10 + 1 AS n FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS a CROSS JOIN ( SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 ) AS b ORDER BY n ) AS numbers WHERE numbers.n <= 1 + (LENGTH(my_field) - LENGTH(REPLACE(my_field, ',', '')))) ``` 在这个查询语句,我们使用了一个内部查询 `numbers`,它返回了一个从 1 到 N 的数字序列,其 N 是最大的以逗号分隔值的数量。这个数字序列被用来逐个访问 `my_field` 每个分隔值。 在外部查询,我们使用 `SUBSTRING_INDEX()` 函数来提取 `my_field` 每个分隔值。具体来说,我们使用 `SUBSTRING_INDEX(my_field, ',', numbers.n)` 来提取字符串前 N 个以逗号分隔的值,然后再使用 `SUBSTRING_INDEX(..., ',', -1)` 来提取其最后一个值。这样就可以逐个访问 `my_field` 每个值了。 最后,我们使用 `AS value` 来给每个分隔值取一个别名。你可以根据需要修改这个别名,以便更好地满足你的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值