如何使用SQL语句提取多条记录?

时间:2014-06-25 18:57:22

标签: sql ms-access

提前感谢您的帮助。

我正在使用用户开发的应用程序。它会提示您搜索某些内容,然后执行基本查询:

SELECT * FROM Table
WHERE Entry=[ENTRY];

我不能改变那种格式。我所能做的就是修改[ENTRY]的文字。有没有办法可以在不修改语句本身结构的情况下提取多条记录?例如:

SELECT * FROM Table
WHERE Entry='COW | APPL* | ROO*';

获得结果:

COW, APPLE, APPLES, ROOF, ROOM, ROOSTER;

请原谅最基本的例子 - 谢谢,

布雷克

4 个答案:

答案 0 :(得分:3)

这完全取决于代码。如果有可能,可以使用Sql注入方法请求多个记录。

SELECT * FROM Table
WHERE Entry='COW' OR Entry ='APPL' OR Entry = 'ROO';

按照此示例,您的变量[ENTRY]应为:

[ENTRY] = "'COW' OR Entry ='APPL' OR Entry = 'ROO'";

注意,如果您的[ENTRY]变量受到sql注入保护,那么这将不起作用。

编辑: 所以这是一个不知道表名的SQL注入方法: 这应该是你要复制的字符串:

COW' OR 1 = '1

答案 1 :(得分:2)

如果开发人员没有阻止sql注入,您可以尝试添加;并创建一个新查询。

如果您可以将=更改为IN

答案 2 :(得分:2)

如果允许SQL注入,您可以在用户输入字段中输入SQL查询,如下所示:

COW' OR Entry = 'APPL%' OR Entry = 'ROO%

这应该使SQL语句看起来像:

SELECT * 
FROM Table 
WHERE Entry='COW' OR Entry = 'APPL%' OR Entry = 'ROO%';

答案 3 :(得分:0)

想出来..现在我的问题是我不知道用户称之为列的问题lol。

如果我知道“入境”是什么,我会这样做:

[Entry] = COW' OR WHERE Entry='APPL*' OR WHERE Entry='ROO*

以便最终的SQL语句为:

SELECT * FROM Table
WHERE Entry='COW' OR WHERE Entry='APPL*' OR WHERE Entry='ROO*';

给我我想要的东西。