任何人都可以帮我试图编写SQL(MS SqlServer) - 我必须承认这不是最好的技能。编写SQL代码:与Yell.com功能相同
我想要做的是完全一样的功能出现在搜索框为Yell website即
搜索公司类型
和/或公司名称
和/或输入公司名称
in a Location
如果任何人都可以建议SQL代码您需要,以获得相同的功能叫喊来写 - 那将是巨大的。
任何人都可以帮我试图编写SQL(MS SqlServer) - 我必须承认这不是最好的技能。编写SQL代码:与Yell.com功能相同
我想要做的是完全一样的功能出现在搜索框为Yell website即
搜索公司类型
和/或公司名称
和/或输入公司名称
in a Location
如果任何人都可以建议SQL代码您需要,以获得相同的功能叫喊来写 - 那将是巨大的。
通常情况下,一个做这样的事情:
-- 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 + '%')
你能否提供sql将运行的数据库布局(模式)?有必要给你一个确切的结果。
但一般来说,你在找什么是
SELECT * FROM tablename WHERE companyType = 'type' OR companyName = 'companyName'
你需要的第一件事不是SQL代码,而是一个数据库设计。只有这样才能开始编写SQL。
匹配叫喊的功能一个简单的表模式可能是这样的:
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'
当然,真实世界的位置搜索将不得不使用确切的城市a nd状态或邮政编码查询,或其某种智能组合。然后一张真正的桌子会有更多的字段,如描述等等,但这是基本的想法。
我有一个数据库设计必须是非常相似,破口大骂 - 我有公司的地址表(地址),我也有公司类型的表。 – Vidar 2009-01-22 16:30:56