我在使用 MYSQL 在 java 中创建文件时遇到一个奇怪的问题。
我的代码:
String lChildSql = this.lSQLBucket.select("get.child.by.name")
.replace("LEFT").with(lLeft)
.replace("RIGHT").with(lRight)
.replace("LEVEL").with(lLevel + 1)
.replace("NAME").with(pName).get()
ResultSet lChildRs = lDB.Qry(lChildSql);
示例:如果我创建一个 pName raj'sek'har 的文件,并且它会自动创建为 raj"sek"har。
请帮我解决这个问题。
问候,
拉吉
最佳答案
未知用户所说的是这是正常行为。这就是 sql 处理单词内的单引号(撇号)的方式。
sql 对字符串使用单引号 - '这是一个字符串'
- 但如果您的字符串包含单引号,则会导致问题 - '这不会起作用'
- 因为字符串“提前结束”。
所以sql所做的就是用两个单撇号替换它,这是一个“转义序列”,表明实际上需要一个单撇号[原文如此]:'this'会正常工作'
.
请注意,这仅用于显示。它并没有“真正”取代任何东西,当您检索数据时,一切都会好起来的。
关于java - 创建文件名时,单引号在java中自动被两个单引号替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9667145/