一尘不染

如何在MySQL中实现关键字搜索?

mysql

我是SQL编程的新手。

我有一个表的工作,其中字段是idpositioncategorylocationsalary rangedescriptionrefno

我想从前端实施 关键字搜索 。关键字可以位于上表的任何字段中。

这是我尝试过的查询,但包含许多重复的行:

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%'

阅读 1120

收藏
2020-05-17

共1个答案

一尘不染

对于VARCHAR字段上的单个关键字,可以使用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')
2020-05-17