gpt4 book ai didi

php - Codeigniter:选择中的前缀字符串到指定的所有列

转载 作者:行者123 更新时间:2023-11-29 22:03:50 26 4
gpt4 key购买 nike

我有以下选择查询。

    $this->db->select("$order_table.user_id, $order_table.total_price,
$order_table.shipping, $order_table.tax,
$order_table.filled, $order_table.shipped,
$order_table.tracking");
$this->db->select("$user_table.first_name as user_first_name,
$user_table.last_name as user_last_name,
$user_table.email as user_email");
$this->db->select("$mailing_address_table.first_name as mailing_first_name,
$mailing_address_table.last_name as mailing_last_name,
$mailing_address_table.address as mailing_address,
$mailing_address_table.address_2 as mailing_address_2,
$mailing_address_table.city as mailing_city,
$mailing_address_table.state as mailing_state,
$mailing_address_table.zip_code as mailing_zip_code,
$mailing_address_table.country as mailing_country");

$this->db->select("$billing_address_table.first_name as billing_first_name,
$billing_address_table.last_name as billing_last_name,
$billing_address_table.address as billing_address,
$billing_address_table.address_2 as billing_address_2,
$billing_address_table.city as billing_city,
$billing_address_table.state as billing_state,
$billing_address_table.zip_code as billing_zip_code,
$billing_address_table.country as billing_country");

$this->db->join($user_table,
"$user_table.id = $order_table.user_id", "left");
$this->db->join($mailing_address_table,
"$mailing_address_table.user_id = $user_table.id", "left");
$this->db->join($billing_address_table,
"$billing_address_table.user_id = $user_table.id", "left");

无论如何,我想象使用 CONCAT,我可以在计费中选择的每一列前面加上“billing_”前缀。当我没有选择所有内容而只是选择特定列时,我似乎无法弄清楚这一点。

我希望从 $user_table 中选择的每一列都以“user_”、$mailing_table“mailing_”等为前缀。

注意:

1) 我没有选择这些选择查询中每一列的所有字段,因此我无法执行 SELECT * FROM...

2) 我不想更新数据库中的列名,只是为了这个特定的 SELECT 使用。

最佳答案

在这里您可以创建字段列表:

SET @SCHEMA = 'toimport';

SET @PREFIX = 'billing_';
SET @POSTFIX = 'address';

SELECT GROUP_CONCAT(
CONCAT(@SCHEMA,'.',@PREFIX,'.',@POSTFIX,'.',COLUMN_NAME,
' AS ',@PREFIX,COLUMN_NAME) SEPARATOR ',\n')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = @SCHEMA AND TABLE_NAME = CONCAT( @PREFIX, @POSTFIX );

结果如下:

toimport.billing_.address.id AS billing_id,
toimport.billing_.address.name AS billing_name,
toimport.billing_.address.street AS billing_street,
toimport.billing_.address.a1 AS billing_a1,
toimport.billing_.address.a2 AS billing_a2

关于php - Codeigniter:选择中的前缀字符串到指定的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32361535/

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