T-SQL查询以搜索表字段中的"Keywords"。
T-SQL查询以搜索表字段中的"Keywords"。
我正在尝试在我的网站上创建一个搜索文本框,当提交时,会将“string-keyword”传递到我的表格中,并提取所有与该关键字匹配的记录。
我需要设置我的表格,使其能够通过查询字符串通过表单传递的参数来“监听”。
我不确定如何处理这个问题。任何见解、提示或示例都将不胜感激。
更新-------
这是我的表格用来填充记录的查询。除了城市/地区/国家之外,我还想将一个只查看BND_Listing表中'Company'字段的关键字搜索功能整合进来。
select * FROM BND_listing right join BND_ListingCategories on BND_Listing.CatID=BND_ListingCategories.CatID where (CategoryName = '[querystring:filter-Category]' or '[querystring:filter- Category]'='All') and (City = '[querystring:filter-City]' or '[querystring:filter-City]'='All') and (Region= '[querystring:filter-State]' or '[querystring:filter-State]'='All') and (Country= '[querystring:filter-Country]' or '[querystring:filter- Country]'='All') and isnull(Company,'') <> '' ORDER by Company ASC
问题的出现的原因:用户想要在数据库表字段中搜索关键词,但是不知道如何编写查询语句来实现。
解决方法:用户可以使用以下的T-SQL查询语句来实现在表字段中搜索关键词的功能:
DECLARE @Keyword VARCHAR(256) --或者其他需要的大小 SET @Keyword = 'some text' SELECT SomeColumns FROM SomeTable WHERE aColumn LIKE '%' + @Keyword + '%'
另外,用户还可以参考使用VB中的SqlCommand来实现该功能的方法。具体可以参考链接:https://stackoverflow.com/a/251311/6167855
用户感谢了提供的例子,并表示需要花一些时间来理解其中的原理。用户还提到需要修改代码来从应用程序中获取关键词,并在表的“Company Name”字段中搜索匹配的结果,并只返回这些结果。用户还提到之前已经使用了类似的方法来实现城市/州/地区的搜索功能,但是这次的搜索框是一个文本框,用户可以输入一个字符串,可能不完全匹配1个或多个数据行。
回答者指出用户仍然需要使用SELECT语句来实现该功能,并且可以使用以下的查询条件来实现搜索字段的可选性:
WHERE @Keyword IS NULL or [Company Name] LIKE '%' + @Keyword + '%'
用户提到出现了一个错误:“Must declare the scalar variable ‘@Keyword’”。回答者解释这是一个SQL错误,并要求用户将SQL代码添加到原始帖子中以便更好地理解问题。
用户表示已经尝试将查询语句导入到SQL MS中,并替换了[CompanyName]为一个具体的值,以测试是否能够获取结果。用户还提到已经在提交表单中添加了一个参数“search=[Company]”。用户询问如何使查询只在“Company”列中进行搜索。
根据用户的描述,可以推断出用户想要在数据库表的“Company”字段中搜索关键词,并返回匹配的结果。用户可以使用以下的查询条件来实现该功能:
WHERE @Keyword IS NULL or [Company] LIKE '%' + @Keyword + '%'
以上就是关于“T-SQL query to search table-field for 'Keywords'”问题的出现原因和解决方法的整理。