我的一个专栏叫。我不能改名字,因为不是我做的。 我是否允许做一些像SELECT from TableName或有一个特殊的语法,以避免SQL Server混淆?
当前回答
从这里的答案和我自己的经验来看。如果您计划实现可移植,唯一可接受的答案是不要对表、列或其他名称使用SQL关键字。
所有这些答案都适用于各种数据库,但显然有很多不支持ANSI解决方案。
其他回答
简单的解决方案
假设列名是from;因此,查询中的列名可以通过表别名引用
Select * from user u where u.from="US"
在MySQL中,除了使用反引号('),您还可以使用UI来更改列名。右键单击表>修改表>编辑包含sql关键字>提交的列名。
select [from] from <table>
需要注意的是,上述方法在MySQL中不起作用
将列名像这样用括号括起来,from变成[from]。
select [from] from table;
也可以使用以下命令(在查询多个表时很有用):
select table.[from] from table;
从这里的答案和我自己的经验来看。如果您计划实现可移植,唯一可接受的答案是不要对表、列或其他名称使用SQL关键字。
所有这些答案都适用于各种数据库,但显然有很多不支持ANSI解决方案。
我在尝试更新名称为关键字的列时遇到了同样的问题。上面的解决方案对我没有帮助。我通过简单地指定表的名称来解决它,就像这样:
UPDATE `survey`
SET survey.values='yes,no'
WHERE (question='Did you agree?')
推荐文章
- 如何在Ruby On Rails中使用NuoDB手动执行SQL命令
- 查询JSON类型内的数组元素
- 确定记录是否存在的最快方法
- 获得PostgreSQL数据库中当前连接数的正确查询
- 在SQL选择语句Order By 1的目的是什么?
- 从现有模式生成表关系图(SQL Server)
- 我如何循环通过一组记录在SQL Server?
- 数据库和模式的区别
- 如何在SQL Server中一次更改多个列
- 如何从命令行通过mysql运行一个查询?
- 外键约束可能导致循环或多条级联路径?
- 使用LIMIT/OFFSET运行查询,还可以获得总行数
- 当恢复sql时,psql无效命令\N
- 货币应该使用哪种数据类型?
- 如何选择每一行的列值不是独特的