我在 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/