gpt4 book ai didi

php - 如何使用php函数将mysql查询输出到csv更改列值

转载 作者:行者123 更新时间:2023-11-30 21:35:31 26 4
gpt4 key购买 nike

我正在尝试将我的表数据导出到 csv,但我需要使用比较 php 数组或函数来更改列值。

我正在尝试 while 循环,但它会花费很多时间和内存问题。

我的问题

SELECT column,$conversionServiceId[column2],column3
INTO OUTFILE '/path/to/file/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM yourtable WHERE columnx = 'çondition';

$conversionServiceId = [
'green'=>'1',
'yellow'=>'2',
'red'=>'3'
];

第 2 列值从 $conversionServiceId 数组中选择

我不明白如何选择表单数组。我有超过 10 万行

最佳答案

您不能那样混合使用 PHP 和 SQL。要么先用 SQL 下载文件,然后打开它并用 php 修改它,要么将转换逻辑移到 SQL 查询本身。

显然,第二种解决方案更有效。

如果转换列表很小,CASE(或 CTE)应该这样做:

SELECT 
column,
CASE
WHEN column2 = 'green' THEN 1
WHEN column2 = 'yellow' THEN 2
WHEN column2 = 'red' THEN 3
END column2
column3
INTO
OUTFILE '/path/to/file/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM yourtable
WHERE columnx = 'çondition';

如果您要处理大型转换列表,您可以考虑将其存储在数据库表中。假设您的转换表名为 yourconversiontable 并且包含列 oldnew,那么:

SELECT 
t.column,
c.new
t.column3
INTO
OUTFILE '/path/to/file/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM yourtable t
INNER JOIN yourconversiontable c ON t.column2 = c.old
WHERE t.columnx = 'çondition';

关于php - 如何使用php函数将mysql查询输出到csv更改列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54045803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com