是由這個如何在MySQL中儲存數組的問題 產生的問題:
問題中解決儲存數組的辦法是做三個表,分別是uid,uid_hobby,hobby表,要查某個uid的hobby的話只能再執行select uid from uid_hobby where uid = XXX,這樣每次都要執行一邊挺麻煩的。
想請問下MySQL能不能把對關聯表select的結果儲存到主表的column中?比如uid表中有一列hobby列,這列裡面存放的內容是“select uid from uid_hobby where uid = 當前id
”這句話的結果?或者有什麼方式可以讓這個查詢過程自動化一點?在建立表的時候就把這種對應關係定好,這樣在查詢主表的時候就能一次性查詢出來,不用再去查詢一遍。
就是說在select hobby from uid where uid = XXX的時候就能直接查詢到did對應的hobby而不是還要再執行對關聯表的查詢。這樣對一張表的查詢只用查詢一張表就完成了。
回複內容:
是由這個如何在MySQL中儲存數組的問題 產生的問題:
問題中解決儲存數組的辦法是做三個表,分別是uid,uid_hobby,hobby表,要查某個uid的hobby的話只能再執行select uid from uid_hobby where uid = XXX,這樣每次都要執行一邊挺麻煩的。
想請問下MySQL能不能把對關聯表select的結果儲存到主表的column中?比如uid表中有一列hobby列,這列裡面存放的內容是“select uid from uid_hobby where uid = 當前id
”這句話的結果?或者有什麼方式可以讓這個查詢過程自動化一點?在建立表的時候就把這種對應關係定好,這樣在查詢主表的時候就能一次性查詢出來,不用再去查詢一遍。
就是說在select hobby from uid where uid = XXX的時候就能直接查詢到did對應的hobby而不是還要再執行對關聯表的查詢。這樣對一張表的查詢只用查詢一張表就完成了。
select uid.* from (select uid from uid_hobby where hobby like '%遊泳%') hobby_tb, uid where uid.id = hobby_tb.uid
不知道這樣理解的對嗎?如果是這樣的話,你在調用的時候甚至不用再主表建立一個這樣的欄位了