gpt4 book ai didi

mysql - SQL Select 基于列的位置。是否可以?

转载 作者:行者123 更新时间:2023-11-29 01:17:04 25 4
gpt4 key购买 nike

我有一个 mySQL 数据库,我想知道我是否可以选择列,而不是通过它们的名称,而是通过它们在表中的位置。
假设我有一个包含以下列的表格(混合英语和法语数据):

id
en_name
en_phone
en_address
fr_name
fr_phone
fr_address

但这只是为了演示目的,我的真实表有 20 个英语和 20 个法语列。
是否可以选择所有英语或所有法语列而不在 SELECT 中列出它们的名称?
如果这不可能,最好的做法是什么?

最佳答案

使用标准 SQL,答案是否定的。没有像这样的结构:

select fr_*

获取所有以 fr_ 开头的列。

您可以使用动态 SQL(准备好的语句)来生成您想要的 SQL。您可以使用 View 仅选择英语或法语列。您可以存储数据,使列位于不同的行上,并且您有一个语言标识符,用于选择。在某些数据库中,您可以使用存储过程仅返回所需的列。

但是,仅使用 SQL 查询,您没有那种灵 active 。

编辑:

您可以创建如下 View :

create view table_fr as
select id, fr_name, fr_phone, fr_address
from t;

不过,最佳做法是将语言存储为单独的列:

id
Language
Name
Phone
Address

并将单个 id 的数据拆分为多行,每种语言一行。您可能有另一个表,用于存储有关 ID 的语言独立信息。

关于mysql - SQL Select 基于列的位置。是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17511851/

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