如何在sql server中的表中搜索给定的文本

时间:2012-06-24 06:28:26

标签: sql sql-server sql-server-2008

我想在不知道其属性的情况下搜索表格中的文本。 示例:我有一个表Customer,我想在任何字段中搜索包含'mohit'的记录,而不知道其列名。

3 个答案:

答案 0 :(得分:0)

如果你想在桌子上进行全面搜索,你一定要知道桌子的结构。考虑到该表包含字段idnameageaddress,那么您的SQL查询应该是:

SELECT * FROM `Customer`
    WHERE `id` LIKE '%mohit%'
    OR `name` LIKE '%mohit%'
    OR `age` LIKE '%mohit%'
    OR `address` LIKE '%mohit%';

答案 1 :(得分:0)

您正在寻找 Full Text Indexing

使用Contains

的示例
select ColumnName from TableName 
Where Contains(Col1,'mohit') OR contains(col2,'mohit')

注意 - 您可以使用从sys.Columns查询计算的列名称将上述自由文本查询转换为动态查询

另请查看以下

<强> FIX: Full-Text Search Queries with CONTAINS Clause Search Across Columns

您还可以查看以下查询中的所有列名称

Select Name From sys.Columns Where Object_Id = 
                   (Select Object_Id from sys.Tables Where Name = 'TableName')
  

Double-WildCard LIKE语句不会加速查询。

答案 2 :(得分:0)

莫希特,我很高兴你自己设计出解决方案。

无论如何,每当你再次面对一个未知的表或数据库时,我认为非常欢迎我只是posted here的代码片段。

啊,还有一件事:给出的答案没有解决你的问题,是吗?