可能此问题已经得到解答,但我找不到。
我使用的是2/3岁的MySQL数据库,其列名中包含连字符。当我尝试使用我的Java代码中的这些名称时,名称在连字符处被破坏(例如air_port变为空气),因此找不到。我尝试在我的代码中将连字符替换为下划线,希望数据库可以平等对待它们,但这不起作用。
如何逃脱连字符或如何访问这些列?这可能是正在使用的字符集的问题吗?
答案 0 :(得分:40)
将名称括在`back-ticks`
中答案 1 :(得分:4)
列名中是否有连字符( - )或下划线(_)?
连字符是一个很大的问题,因为如果最终将列名映射到变量,大多数语言都不喜欢在变量名中包含连字符。也许您正在使用其中一个自动生成名称基于列名的变量或对象的Java库。
根据问题的性质,您可以使用几种不同的方法:
这些都不是很好的解决方案,但它们应该让你开始。祝你好运!
答案 2 :(得分:3)
数据库名称中的连字符也不好。但是你可以用反引号技巧“
来使用它们`name-with-hyphen`
答案 3 :(得分:1)
我必须创建一个名为pre-ca_db的数据库。
我用
解决了这个问题create database `pre-ca_db`;
祝你好运!
答案 4 :(得分:1)
最好不要在列名中使用连字符。我在连字句中遇到了一个很大的问题,连字符引起了大麻烦 - 甚至在后面的滴答声中逃避的名字也没有用。
将列名转换为使用下划线 - 这是最安全的方法。
答案 5 :(得分:0)
This entry表明您可能遇到了问题。但是,我认为它指的是数据,而不是列名。
This说“不要这样做”。不知道它有多权威。