php - 将较低的数字从行导出到 csv
问题描述
我想在我的 csv 文件中将最低数字 (min(Number1,Number2,Number3) 插入到最低列。我的表:
ID_Unique | Number1 | Number2 | Number3 |
AB67 | 10 | 20 | 5 |
BC45 | 2 | 10 | 15 |
AS76 | 1 | 40 | 50 |
这是我将表格导出到 csv 的部分代码。
$stmt = $conn->prepare("SELECT tabel1.ID_Unique AS ID,
tabel1.Number1 AS 'Number1', tabel1.Number2 AS 'Number2',tabel1.Number3 AS 'Number3', tabel1.Lowest AS 'Lowest'
FROM tabel1
");
$stmt->execute();
$filelocation = 'exports/';
$filename = 'export-'.date('Y-m-d H.i.s').'.csv';
$file_export = $filelocation . $filename;
$data = fopen($file_export, 'w');
$csv_fields = array();
$csv_fields[] = 'ID';
$csv_fields[] = 'Number1';
$csv_fields[] = 'Number2';
$csv_fields[] = 'Number3';
$csv_fields[] = 'Lowest';
解决方案
使用LEAST
:
SELECT
ID_Unique AS ID,
Number1,
Number2,
Number3,
LEAST(Number1, Number2, Number3) AS Lowest
FROM tabel1;
在没有LEAST
函数的数据库中,我们可以使用CASE
表达式实现相同的逻辑:
CASE WHEN Number1 < Number2 AND Number1 < Number3 THEN Number1
WHEN Number2 < Number3 THEN Number2
ELSE Number3 END AS Lowest
推荐阅读
- java - 按钮的边距未在 Android 中以编程方式设置
- java - 在 @PostConstruct 中调用另一个 bean 的方法引发了一个空指针 ex
- java - Java, sqlite3 自命令行故障排除
- kubernetes - 有没有办法在 K8S 单节点部署多容器应用程序进行生产?
- excel - 如何在Excel VBA中将字符#更改为=
- android - 如何频繁地从 api 获取数据?
- sql - 有没有办法使用 sqoop 将所有表而不是视图从 RDBMS 导入配置单元
- android - 插入或更新操作时如何显示 SQLException
- javascript - 为延迟加载的模块组件指定 routerLink?
- node.js - 为服务添加自定义端点 (Feathersjs)