编写SQL代码:与Yell.com的功能相同
有谁能帮我写SQL(MSSQLServer)吗?我必须承认,这并不是用最好的技巧 我想做的是完全相同的功能,为搜索框显示的,即编写SQL代码:与Yell.com的功能相同,sql,sql-server-2005,Sql,Sql Server 2005,有谁能帮我写SQL(MSSQLServer)吗?我必须承认,这并不是用最好的技巧 我想做的是完全相同的功能,为搜索框显示的,即 搜索公司类型 和/或公司名称 和/或输入公司名称 在某地 如果有人可以建议使用SQL代码,您需要编写代码才能获得与Yell相同的功能,那就太好了。您能提供SQL将运行的数据库布局(模式)吗?有必要给你一个确切的结果 但一般来说,你要找的是 SELECT * FROM tablename WHERE companyType = 'type' OR companyNam
- 搜索公司类型
- 和/或公司名称
- 和/或输入公司名称
- 在某地
如果有人可以建议使用SQL代码,您需要编写代码才能获得与Yell相同的功能,那就太好了。您能提供SQL将运行的数据库布局(模式)吗?有必要给你一个确切的结果 但一般来说,你要找的是
SELECT * FROM tablename WHERE companyType = 'type' OR companyName = 'companyName'
您首先需要的不是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'
当然,现实世界中的位置搜索必须使用准确的城市和州,或邮政编码查找,或两者的智能组合。一个真正的表会有更多的字段,如描述等。但这是基本的想法。通常,人们会这样做:
-- 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 + '%')