在Mysql中,有時我們需要對一個字段進行匹配,而這個字段可能包含多個值,而這些值之間使用逗號隔開。這時候,我們就需要使用逗號進行分割,并逐一進行匹配。
例如,我們有一個表格students,其中有一個字段hobby記錄了每個學生的興趣愛好,可能會這樣存儲:足球,籃球,音樂,旅游。如果我們需要查找所有喜歡旅游的學生,可以使用以下代碼進行查詢: SELECT * FROM students WHERE FIND_IN_SET('旅游',hobby)
上面的代碼中,使用了FIND_IN_SET函數進行匹配。這個函數能夠在一個逗號分隔的字符串集合中查找一個字符串,并返回這個字符串在集合中的位置。
如果想查找所有喜歡旅游和音樂的學生,可以這樣查詢: SELECT * FROM students WHERE FIND_IN_SET('旅游',hobby) AND FIND_IN_SET('音樂',hobby)
如果有多個條件需要匹配,可以像上面的代碼一樣使用多個FIND_IN_SET函數進行查詢。但是,這種方式的缺點是效率較低,查詢速度較慢。因此,在設計數據庫表格時,如果需要對一個字段進行多值匹配,最好使用多對多關系表。
上一篇c json 禁止輸出