我是 SQL 编程新手。
我有一个表作业,其中的字段id
, position
, category
, location
, salary range
, description
, refno
.
我想实施一个关键词搜索从前端。关键字可以驻留在上表的任何字段中。
这是我尝试过的查询,但它包含许多重复的行:
SELECT
a.*,
b.catname
FROM
job a,
category b
WHERE
a.catid = b.catid AND
a.jobsalrange = '15001-20000' AND
a.jobloc = 'Berkshire' AND
a.jobpos LIKE '%sales%' OR
a.jobloc LIKE '%sales%' OR
a.jobsal LIKE '%sales%' OR
a.jobref LIKE '%sales%' OR
a.jobemail LIKE '%sales%' OR
a.jobsalrange LIKE '%sales%' OR
b.catname LIKE '%sales%'
对于 VARCHAR 字段上的单个关键字,您可以使用LIKE http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html:
SELECT id, category, location
FROM table
WHERE
(
category LIKE '%keyword%'
OR location LIKE '%keyword%'
)
对于描述,您通常最好添加全文索引并执行全文搜索 http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html(仅限 MyISAM):
SELECT id, description
FROM table
WHERE MATCH (description) AGAINST('keyword1 keyword2')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)