天天看點

mysql 中的FIND_IN_SET函數

Mysql中的FIND_IN_SET函數在我知道它之前,我在做一個一對多的外鍵查詢時,都會在中間設計一個關系表。比如一篇文章(post)對應多個标簽(tag),我就會在中間設計一個關系表(post_tag_mapping)來記錄文章和标簽的對應關系,然後查詢某一個标簽下的文章時,就用

JOIN

語句來實作了,這也應該是處理一對多關系查詢時的标準做法。一般語句就像下面

SELECT * FROM post LEFT JOIN post_tag_mapping WHERE tag_id =       

但是當我發現

FIND_IN_SET

函數後,就可以完全不用

JOIN

這種查詢方式了,我們完全可以在文章表裡設定一個類型為SET的标簽字段(tags),它存儲标簽id的格式就像這樣

111,222,333

,查詢語句就變成了

SELECT * FROM post WHERE FIND_IN_SET('123', tags)      

繼續閱讀