簡體   English   中英

MySQL搜索多行,具有多個關鍵字的多個表

[英]Mysql search on multiple rows, multiple tables with multiple keywords

如果可能,我想調整以下mysql查詢:

SELECT * FROM artists,tags WHERE tags.tag_title LIKE '$q' AND artists.art_id=tags.art_id
  • $q是用戶輸入的關鍵字
  • 歌手是帶有歌手基本信息的表
  • 標簽是帶有與演出者相關的關鍵字的表(演出者可以添加多個關鍵字-或短語-並且每個關鍵字存儲在不同的行中)

使用此查詢, tags.tag_title必須匹配確切的搜索。 例如,“ alternative rock”將在表格標簽中顯示所有帶有關鍵字“ alternative rock”的藝術家。 沒關系。

因此,問題是,對於關鍵字“ alternative rock”,我還要在表格標簽的不同行中顯示具有關鍵字“ alternative”和“ rock”的藝術家,而不是關鍵字“ alternative”和“金屬”或關鍵字為“獨立”和“搖滾”的藝術家。

有道理嗎?

您正在尋找這樣的東西,

 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

顯然,這只是一個例子,但我認為您正在追求這樣的東西:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM