查询Access数据库的SQL字符串

Posted

技术标签:

【中文标题】查询Access数据库的SQL字符串【英文标题】:SQL String to query Access Database 【发布时间】:2013-03-19 01:44:59 【问题描述】:

我在访问数据库上的 oledb 查询的命令行上遇到了一点问题。 我已经尝试了许多不同的语法,无论是在访问中还是在我的代码中。与数据库的连接很好,当我尝试填充 da 或在 access 中将其作为查询运行时出现错误。

SELECT * FROM MyTable WHERE MyColumn = 'This Text String';

当我在访问权限中运行它时,我得到一个数据类型不匹配。双引号产生相同的结果。我认为这是因为空格我是否尝试将文本字符串包装在方括号中:

SELECT * FROM MyTable WHERE MyColumn = [This Text String];

在 Access 中,这会提示“输入参数值”,将参数列为“此文本字符串”。

我也尝试过使用 Like 运算符:

SELECT * FROM MyTable WHERE MyColumn LIKE 'This Text String';

无论是单引号还是双引号,这都不会产生错误,但也不会产生任何结果。我试过 CONTAINS,它给了我一个语法错误。

在这一点上,我不知道还能尝试什么。我想要完成的是:

返回“MyTable”中“MyColumn”中的文本等于“This Text String”的所有行

有人可以帮助我吗?我觉得我忽略了一些东西,可能很明显。


编辑:啊……我不确定这是否是问题所在,但也许它会有所帮助。

我刚刚意识到我试图过滤的列 (MyColumn) 不仅仅是访问中的纯文本,它实际上是在另一个表中查找列。

也许这就是问题所在,因为数据类型实际上不是文本,而是数字(因为它是一个列表)。好的...我该如何克服呢?

【问题讨论】:

什么是列类型?什么错误? 哇...快速回复!这就是我刚刚意识到并编辑了这篇文章。包含“此文本字符串”数据类型的列不是文本,而是数字,因为它会查找另一个表中另一列的可用选项。有没有办法可以引用它,或者我需要知道包含表中该项目的编号是多少? 【参考方案1】:

你需要加入查找表

SELECT * FROM MyTable INNER JOIN Lookup l on MyColumn = l.key and l.value =  'This Text String';

【讨论】:

以上是关于查询Access数据库的SQL字符串的主要内容,如果未能解决你的问题,请参考以下文章

access sql中的注释是啥字符

Microsoft Access SQL 查询中的字符串连接问题

SQL语句如何查询ACCESS数据库中某一字符串字段长度等于某个值的所有记录?

墨者靶场 SQL手工注入漏洞测试(Access数据库)

墨者靶场 SQL手工注入漏洞测试(Access数据库)

access sql语句查询某个日期字段是不是存在某个具体的日期(包含时分秒), sql怎么写