我在mysql中有下表:
表名:所有项目

item_no qty
1l900fu 1
1l950be 2
1l1000bk 3
1l1020rd 5
1l1200fu 7

我需要做两个选择,其中它应该输出两个不同的csv文件,如下所示:
CSV file 1                                       CSV file 2
    item_no qty                                     item_no qty
    1l900fu 1                                        1l1000bk 3
    1l950be 2                                        1l1020rd 5
                                                     1l1200fu 7

根据上表,字符串包含数字和字母,因此我考虑了执行strlen,但我不确定如何将其放在查询语句中:
//CSV file 1

$result = mysql_query("SELECT item_no, qty FROM all_items ORDER BY item_no Asc");

//Excuting Values from Mysql to CSV
$row = 1; // 1-based index
while($row_data = mysql_fetch_assoc($result)) {

    $col = 0;
//Row Values
    foreach($row_data as $key=>$value) {
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
        $col++;
    }
    $row++;
}

你知道它是怎么工作的吗?我想根据item_no分离strlen
对不起,我不太熟悉php。请帮忙!

最佳答案

图样:1L900FU
两个字符,后跟数字,后跟一些字母。
使用substr()获取前两个字母后的字符串。
那你就有九百福了。
然后使用正则表达式只获取它遇到的第一个alpha之前的数字,但不包括它遇到的第一个alpha。这就留给你:
900。
然后使用intval()
创建两个数组,如果intval()小于1000,则推到第一个数组,否则推到第二个数组。
根据需要从这两个数组生成输出。
或者出于某种原因,您必须在mysql中执行所有操作吗?

09-25 18:13