由于表名'CASE'导致MySQL查询中的问题
Posted
技术标签:
【中文标题】由于表名\'CASE\'导致MySQL查询中的问题【英文标题】:issue in MySQL query due Table name 'CASE'由于表名'CASE'导致MySQL查询中的问题 【发布时间】:2020-09-03 13:20:44 【问题描述】:我从代码峡谷安装了一个脚本,其中有一个名为 Case 的表。
当我尝试执行查询时
SELECT COUNT(*) as total FROM case
它显示以下错误
Static analysis:
1 errors were found during analysis.
Unexpected end of CASE expression (near "" at position 0)
SQL query: Documentation
SELECT COUNT(*) as total FROM case
mysql said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'case' at line 1
我知道 case 是 MYSQL 的保留字,但现在我该如何解决这个问题,因为我无法更改表名,也无法将其修改为整个脚本。
【问题讨论】:
case
是保留字,完整列表见en.wikipedia.org/wiki/SQL_reserved_words。
更改表名
我已经提到,由于我是从网站上购买的,所以无法更改。
【参考方案1】:
case
是一个非常糟糕的表名或列名。这显然是一个 SQL 关键字。但是,如果您无法修复它,请使用反引号:
select count(*)
from `CASE`
转义名称并告诉 MySQL 将其视为某物的名称,而不是关键字。
我鼓励您弄清楚如何修复数据库。我通常以复数形式命名表——例如cases
。首先,它们是复数,因为它们几乎总是有不止一行。副作用是复数与更少的关键字发生冲突。
【讨论】:
以上是关于由于表名'CASE'导致MySQL查询中的问题的主要内容,如果未能解决你的问题,请参考以下文章