"Alias"可能是一个错误的词,因为它是在将列/表名称引用为查询中的其他名称的上下文中使用的。
我感兴趣的是,是否有一种方法可以在数据库中为列指定两个名称。如果我打印这样一张表,它会是这样的:
mysql> SELECT * FROM User;
+--------------------------+-----------------+
| id | username | uname | password | pswd |
+----+---------------------+-----------------+
| 0 | bob_jones@gmail.com | some_pw_hash |
| 1 | sue_smith@gmail.com | some_pw_hash |
+--------------------------------------------+
在这种情况下,username
和uname
在查询语句中是同义词,password
和pswd
也是同义词。
因此,以下语句将具有相同的输出:
mysql> SELECT id, username FROM User;
...
mysql> SELECT id, uname FROM User;
...
我想避免做类似的事情
mysql> SELECT id, username AS uname FROM User;
那么,像这样的功能存在吗?
干杯,Neil
不,这是不可能的。要做到这一点,您必须添加一个新的、实际的第二列,并使用触发器来保持它们的同步,这将是愚蠢的。
只需正确编写SQL即可使用正确的列名。
如果您不介意从V_User而不是User中进行选择,那么视图可以为您提供所需内容。
CREATE VIEW V_User AS
SELECT username as username,
username as uname
FROM User;
然后这两个查询有相同的结果:
mysql> SELECT id, username FROM V_User;
...
mysql> SELECT id, uname FROM V_User;
...
正如Ken所指出的,这并不是人们所要求的。但根据具体情况,这可能正是我们所需要的。