任何人都可以帮我尝试编写SQL(MS SqlServer) - 我必须承认这不是最好的技能。
我想要做的是与Yell website的搜索框所显示的完全相同的功能,即
搜索公司类型
和/或公司名称
和/或输入公司名称
如果有人可以建议 SQL代码,您需要编写才能获得与Yell相同的功能 - 这会很棒。
答案 0 :(得分:2)
通常,人们会这样做:
-- All these are NULL unless provided
DECLARE @CompanyType AS varchar
DECLARE @CompanyName AS varchar
DECLARE @Town AS varchar
SELECT *
FROM TABLE_NAME
WHERE (@CompanyType IS NULL OR COMPANY_TYPE_COLUMN LIKE '%' + @CompanyType + '%')
AND (@CompanyName IS NULL OR COMPANY_NAME_COLUMN LIKE '%' + @CompanyName + '%')
AND (@Town IS NULL OR TOWN_COLUMN LIKE '%' + @Town + '%')
或者这个(只匹配带通配符的列的开头):
-- All these are NULL unless provided
DECLARE @CompanyType AS varchar
DECLARE @CompanyName AS varchar
DECLARE @Town AS varchar
SELECT *
FROM TABLE_NAME
WHERE (@CompanyType IS NULL OR COMPANY_TYPE_COLUMN LIKE @CompanyType + '%')
AND (@CompanyName IS NULL OR COMPANY_NAME_COLUMN LIKE @CompanyName + '%')
AND (@Town IS NULL OR TOWN_COLUMN LIKE @Town + '%')
答案 1 :(得分:0)
您能提供sql运行的数据库布局(架构)吗?有必要给你一个确切的结果。
但总的来说,你要找的是
SELECT * FROM tablename WHERE companyType = 'type' OR companyName = 'companyName'
答案 2 :(得分:0)
首先需要的不是SQL代码,而是数据库设计。只有这样才开始编写SQL。
与Yell功能匹配的简单表模式可能类似于:
CREATE TABLE Company (
company_id INT NOT NULL PRIMARY KEY IDENTITY(1,1),
company_name VARCHAR(255) NOT NULL,
location VARCHAR(255) NOT NULL
)
然后你会用SQL搜索名称,如:
SELECT * FROM Company WHERE company_name like '%text%'
或按地点:
SELECT * FROM Company WHERE location = 'Location'
当然,真实世界的位置搜索必须使用确切的城市和州,或邮政编码查询,或其智能组合。然后真正的表会有更多的字段,比如描述等。但这是基本的想法。