请帮助我,因为我似乎无法做到这一点
我试图在访问数据库中的列名tblStudents中查询名称(Daniel O'Neal),但是访问报告语句错误:
Select * from tblStudents where name like 'Daniel O'Neal'
Run Code Online (Sandbox Code Playgroud)
因为名字中的撇号.
我该如何克服这一点.
先感谢您
Ale*_* K. 60
你'通过加倍逃避,所以:
Select * from tblStudents where name like 'Daniel O''Neal'
Run Code Online (Sandbox Code Playgroud)
请注意,如果您从用户输入接受"Daniel O'Neal",那么破坏的报价是一个严重的安全问题.您应该始终清理字符串或使用参数化查询.
当您在查询中包含字符串文字时,您可以将字符串括在单引号或双引号中;Access 的数据库引擎将接受。所以双引号将避免包含单引号的字符串的问题。
SELECT * FROM tblStudents WHERE [name] Like "Daniel O'Neal";
Run Code Online (Sandbox Code Playgroud)
如果您想在字符串周围保留单引号,则可以将其中的单引号加倍,如其他答案中所述。
SELECT * FROM tblStudents WHERE [name] Like 'Daniel O''Neal';
Run Code Online (Sandbox Code Playgroud)
注意name周围的方括号。我使用括号来减少混淆数据库引擎的机会,因为name是一个保留字。
不清楚您为什么在查询中使用Like比较。根据您所展示的内容,这应该起作用。
SELECT * FROM tblStudents WHERE [name] = "Daniel O'Neal";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99083 次 |
| 最近记录: |