首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类似SQL的命令不包括某些数据

类似SQL的命令不包括某些数据
EN

Stack Overflow用户
提问于 2015-06-07 08:12:14
回答 2查看 71关注 0票数 3

我的数据如下:

姓名:罗杰 职业:工程师 姓名: Jane 职业:工程师

代码:

代码语言:javascript
复制
string occ = "software engineers";

My:(删除了参数化查询,只是为了说明目前的情况)

代码语言:javascript
复制
"SELECT * FROM Users WHERE Occupation LIKE '%" + occ + "%'"

但是,这不会返回用户,因为一个额外的's‘放在参数occ的末尾。如果我将occ的值更改为“软件工程师”,它将返回这两个用户。如何更改查询,使其包含与参数类似的所有数据?

也就是说,包括所有从事“软件工程师”和“软件工程师”职业的用户。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-07 08:20:37

有多种方法来处理这个问题。您不能只是告诉DB提供任何“类似于此搜索查询”的记录。

您可能应该更好地定义您所追求的那种灵活性。

对于这个特定的例子,以及任何其他只在后缀中不同的例子,您可以这样做。

代码语言:javascript
复制
SELECT * FROM Users Where CONTAINS(Occupation,@occ)

因此,如果实际的DB占用中的任何地方都包含 occ搜索查询值,它将返回该记录。

还请注意,我使用了@occ,您根本不应该这样做。

代码语言:javascript
复制
"SELECT * FROM Users Where CONTAINS(Occupation," + occ + ")";

最糟糕的情况是,"occ“实际上是由应用程序的用户提供的,因为这是一个巨大的安全漏洞(SQL注入)。

但是,即使它是从您自己的代码中提供的,您仍然应该使用SQL参数将值添加到@occ参数中。请查看sql参数以及如何使用它们。

票数 0
EN

Stack Overflow用户

发布于 2015-06-07 08:20:46

你可以试试这个:

代码语言:javascript
复制
"SELECT * FROM Users WHERE Occupation LIKE '%" + occ + "%' OR " +
  ooc + " like '%' + Occupation + '%'"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30691413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档