PHP 选择和分隔项目

标签 php mysql database select

我在 MySQL 中有下表:

表名:all_items


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++;
}

知道它是如何工作的吗?我想根据 strlen 分离 item_no

抱歉,我不太熟悉 PHP。请帮忙!

最佳答案

图案:1l900fu

两个字符,后跟数字,再后跟一些字母。

使用substr() 获取前两个字母之后的字符串。

那你就有900fu了。

然后使用正则表达式只获取数字,但不包括它遇到的第一个 alpha。这给你留下了:

900。

然后使用intval()

创建两个数组,如果 intval() 为 < 1000,则推送到第一个数组,否则,推送到第二个数组。

根据需要从这两个数组构建输出。

或者您是否出于某种原因必须在 MySQL 中完成所有操作?

关于PHP 选择和分隔项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17284328/

相关文章:

php - MySQL SELECT 语句 COUNT 错误

php - 无法登录 Php MySQL android

c# - 如何根据互联网连接将数据保存在不同的数据库中

mysql - 有没有办法重置 mysql IDLE/Sleep 连接?

mysql - MariaDB(或MySQL)是否需要SSL证书以确保安全

php - nginx 阻止从缓存加载

php - 维护 PHP 应用程序的历史表

php - 如果验证没有失败则提交数据(PHP、MYSQL)

php - 在MySQL中进行COUNT查询后如何简化重复列的结果?

mysql - 有没有其他方法可以触发此查询