我使用MySQL和我有一個成員表有BLOB「聯繫人」含其他成員的ID的逗號分隔列表字段:MySQL的選擇,隨後將其用逗號分隔的字段
TABLE members:
id_member = 1
firstname = 'John'
contacts (BLOB) = '4,6,7,2,5'
我要檢索的所有在個人的「聯繫人」列表中輸入名字,並帶有單個查詢。我試過如下:
SELECT firstname from members WHERE id_member IN (SELECT contacts FROM members WHERE id_member = 1);
它僅返回一行,但當我嘗試:
SELECT firstname from members WHERE id_member IN (4,6,7,2,5);
它從列表中返回所有的名字。我可以使用兩個查詢來實現這一點,但我想我會仔細檢查是否有一種方法可以讓它使用一個簡單,優雅的查詢。
感謝您的閱讀,任何幫助表示讚賞。 七月
是您的ID數字和你的BLOB字符串? – Jrod 2012-02-23 19:41:16
這裏的解決方案是使用一個聯繫人表格對數據庫進行正確的規範化處理,該聯繫人表格有兩列:id_member和id_contact,每個id_member有多行。 – 2012-02-23 19:41:37
是的,Jrod,我的ID是INT,blob是一個字符串。感謝邁克爾的想法,但是我對這個選項有一個保留,我在我對Tadman的回答中表達了這個選項 – 2012-02-23 20:06:27