我是SQL编程的新手。
我有一个表的工作,其中字段是id,position,category,location,salary range,description,refno。
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:
LIKE
SELECT id, category, location FROM table WHERE ( category LIKE '%keyword%' OR location LIKE '%keyword%' )
对于描述,通常最好添加全文索引并进行全文搜索(仅适用于MyISAM):
SELECT id, description FROM table WHERE MATCH (description) AGAINST('keyword1 keyword2')