使用包含SQL函数搜索您的数据库
正确的SQL语句使数据库成为任何任务的完美工具。您所要做的就是使用所需的数据填充数据库表,并使用SQL查询将它们组合成有用的信息。SQL的力量位于Where子句,它允许您输入过滤器和其他搜索条件以创建您的问题的完美解决方案。但是,有时候您只知道所需信息的一部分。常规SQL逻辑和平等语句只处理整个数据。如果您需要对子字符串测试数据库,则需要使用包含SQL函数。
包含SQL Server的SQL函数
在我们开始之前,您必须明白包含SQL函数不是标准的SQL函数。虽然每个数据库系统都有功能,但它们都以不同的方式处理。该函数也需要不同数据库的不同参数。因此,在使用之前,您必须知道并理解您使用的数据库系统。
使用任何数据库,包含SQL Server的SQL函数检查一个字符串是否包含作为子字符串的第二个字符串。对于Microsoft SQL Server和类似系统,包含允许您在表上执行全文术语模式匹配查询。
到目前为止,最常见的关键字使用,包含需要两个参数并返回一个结果为true或false的结果。如果它发现匹配和0(FALSE),则为1(真实)。第一个参数是您想要搜索的表列的名称。第二个论点是您需要的子字符串。基本语法如下。
从“您的位置”中选择ColumnName(ColumnName,'yoursubstring');
从上面的示例中,您应该注意到我没有将列名称在引号中括起来,但我确实包含在括号中包含SQL函数的参数。
您可以在任何SQL查询中使用包含函数,但您可以使用WHERE子句,尽管它是最有用的选择语句。使用SELECT,包含返回输入的列包含子字符串的所有记录。例如,以下示例仅返回纽约市的记录,其中包含包含包含字母“A”的单词的十大短语。
选择不同的前10个短语,因为City ='纽约市'并包含(短语,'a *');
结果:
phrase | 结果 |
---|---|
23345 | 一个团体创作 |
67872 | 银色小屋珠宝房子 |
36274 | doeacc一个级别课程 |
58444. | V珠宝商 |
11234 | 一个帐篷房子 |
37098 | Azad一个完整的婚礼计划 |
5990. | 一个 |
60636 | 一个美容院 |
74257 | 一个乐队 |
76122 | d一个国际旅行 |
子字符串参数中的*是一个通配符占位符,代表单词中的所有其他字符。我这样做了,因为SQL Server不会返回任何东西。SQL Server将子字符串视为完整的单词。如果我刚刚使用'a',则SQL将忽略它,因为“A”是SQL Server忽略的之一,以及“”和“AN”。通常称为粒子,噪声字由指定的语言定义。因为它们如此经常出现,因此SQL Server忽略了它们以及标点符号。您可以通过查看SQL Server安装目录中的噪声文件来检查SQL Server考虑噪声的单词。
在最后一个示例中,我只搜索一个子字符串。但是,您可以根据需要在参数中包含多个子字符串。您必须将每个附加子字符串用双引号括起来,并由逻辑运算符分隔。例如,以下查询会带回包含其摘要“替换”或“踏板”的所有文档。
选择DocID,从Production.doSuments中选择docsummary(docsummary,'替换“或”踏板“);
像以前一样,SQL Server在整体上搜索这些单词作为子字符串。它不会寻找同义词或变形。因为我没有包括通配符,所以它不会在其他单词中搜索这些术语。我使用了操作员或上面的示例,以返回包含任何一个单词的结果,但您可以切换出来,如果需要使用两个单词。
包含其他数据库的SQL函数
这就是您需要知道使用SQL Server系统中的SQL语句中的Cotains。正如我之前提到的那样,其他数据库也可以使用关键字,但它们都使用它不同。在这些其他系统中,您需要使用类似的语句来实现与上述相同的结果。
Oracle数据库
使用Oracle数据库系统,包含与SQL Server版本一样的工作,但具有两个其他参数。基本语法看起来像这样:
包含(column_name,substring,label,policy_hint)
column_name和子字符串与SQL Server的相同。
标签必须是一个数字,它表示包含功能的分数。它是可选的,除非您必须使用多次在查询中时。如果使用得分函数,则必须引用此值。
String Policy_hint标识了对具有多个策略的列的影响策略。您必须包含标签以使用它,但至少您只需指定所需的策略名称。如果将其留空,则默认为第一个可用策略。
mysql.
MySQL仅在处理空间数据时识别包含SQL函数。它需要两个图形对象作为参数,并且根据第一个对象完全包含第二个,返回1或0。设计为OpenGIS框架的实现,MySQL包含函数在普通字符串上不起作用,如果您尝试它会产生错误。在处理信息字符串时,MySQL仅识别出类似的和StrcMP函数。
其他数据库
我只包括Oracle和MySQL,因为它们是SQL Server最受欢迎的替代品。如您所见,所有三个数据库都使用包含SQL函数的不同方式不同,并且对于任何其他数据库系统,您可能遇到的其他数据库系统也是如此。我建议您检查您的系统是否在您在查询中使用它之前了解包含功能。如果您可以使用包含,您应该尽可能多地使用它。它比喜欢和自我验证要快得多。它是在必须搜索特定单词或短语的数千条记录时的完美解决方案。