Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中,有没有一种方法可以让一列只是对同一表中另一列的引用?_Mysql - Fatal编程技术网

在MySQL中,有没有一种方法可以让一列只是对同一表中另一列的引用?

在MySQL中,有没有一种方法可以让一列只是对同一表中另一列的引用?,mysql,Mysql,在MySQL中,有没有一种方法可以让一列只是对同一表中另一列的引用 我正在处理一个非常旧的MySQL数据库,它没有命名约定。我不能只是重命名列,因为那样会破坏很多代码。因此,我认为如果我可以在名称不好的列中添加一个“快捷方式列”,然后交替使用它们,那将很酷。我不太清楚“引用”是什么意思(举个例子就好了),但是。。。在SQL语句中,可以多次定义同一列,并为列名指定别名 大概是这样的: SELECT *, [this_is_a_really_bad_name] as myNewName FROM M

在MySQL中,有没有一种方法可以让一列只是对同一表中另一列的引用


我正在处理一个非常旧的MySQL数据库,它没有命名约定。我不能只是重命名列,因为那样会破坏很多代码。因此,我认为如果我可以在名称不好的列中添加一个“快捷方式列”,然后交替使用它们,那将很酷。

我不太清楚“引用”是什么意思(举个例子就好了),但是。。。在SQL语句中,可以多次定义同一列,并为列名指定别名

大概是这样的:

SELECT *, [this_is_a_really_bad_name] as myNewName FROM MyTable
假设表
MyTable
有一个设计糟糕的列
this\u's\u really\u bad\u name
,您现在可以通过其旧名称或
myNewName
来引用该列

这就是你想要达到的目标吗?

你考虑过吗


您是否能够使用视图而不是表,或者将表名替换为视图名是一个非初学者的想法?是的,使用视图支持遗留代码也是我的第一个想法。随着时间的推移,您将有时间将代码转换到新表中。IMO,如果必须的话,请在查询中使用别名,但我怀疑能够用两个名称调用一个列会给可能已经混乱的情况增加更多混乱。(是的,你可以使用触发器等来保持另一列的同步,但作为一名潜在的程序员,我请你保持清楚。不要让我花几个小时来寻找一列更改的原因。)我在想,假设创建一个具有相同列名的视图,然后在使用它的ASP.NET堆中为该视图交换表,然后我可以更改列名…这听起来合理吗?听起来合乎逻辑,请记住这一点。
CREATE VIEW view_name 
AS SELECT *, bad_name as New_name
FROM table