2

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

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

与此查询tags.tag_title必须匹配的确切搜索。例如“另类摇滚”将在表格标签中显示所有带有关键字“另类摇滚”的艺术家。没关系。

所以,问题是对于关键字“另类摇滚”,我还想在表格标签的不同行中显示关键字“另类”和“摇滚”的艺术家,而不是关键字“另类”的艺术家和“金属”或关键字“独立”和“摇滚”的艺术家。

这有意义吗?

4

2 回答 2

0

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

SELECT * FROM artisits artist LEFT JOIN tags tag ON tag.artist_id = artist.id WHERE artist.name LIKE '$q' OR tag.name = $q
于 2013-01-31T18:30:57.610 回答
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 是关键字 1 和关键字 2

于 2013-01-31T18:27:36.633 回答