Mysql搜索多行,多个表有多个关键字

时间:2013-01-31 18:20:18

标签: php mysql search

如果可能,我想调整以下mysql查询:

SELECT * FROM artists,tags WHERE tags.tag_title LIKE '$q' AND artists.art_id=tags.art_id
  • $q是用户输入的关键字
  • 艺术家是艺术家基本信息的表格
  • 标签是包含与艺术家相关的关键字的表格(艺术家可以添加多个关键字 - 或短语 - 并且每个关键字存储在不同的行中)

使用此查询tags.tag_title必须与精确搜索匹配。例如,“alt rock”将在表格标签中显示所有带有关键字“alternative rock”的艺术家。没关系。

所以,问题是对于关键词“替代摇滚”,我想展示在桌面标签上不同行中有关键词“alternative”和“rock”的艺术家,而不是具有关键词的艺术家“另类“和”metal“或艺术家的关键词”indie“和”rock“。

有意义吗?

2 个答案:

答案 0 :(得分:0)

你找这样的东西,

 SELECT * FROM artists
 INNER JOIN tags 
 ON artists.art_id=tags.art_id
 WHERE tags.tag_title LIKE '% $q1 %' OR  tags.tag_title LIKE '% $q2 %'

q1和q2是keyword1和keyword2

答案 1 :(得分:0)

显然这只是一个例子,但我认为你是在追求这样的事情:

SELECT * FROM artisits artist LEFT JOIN tags tag ON tag.artist_id = artist.id WHERE artist.name LIKE '$q' OR tag.name = $q