我有一個名爲orders
的表,其中我有一個帶有ids連接示例的列,這指的是多個產品id如何存儲示例:454,678並且如果我想選擇表格產品內部連接表訂單where products.id in (orders.productids)
它只會列出一行,但如果我做同樣的選擇,並把where products.id in (454,678)
然後它列出我的兩行。MySQL選擇連接值的位置
由於這些值已經連接起來以便能夠在IN條件下使用,那麼它應該工作在那裏它可以讀取兩個ID的連接?
我有一個名爲orders
的表,其中我有一個帶有ids連接示例的列,這指的是多個產品id如何存儲示例:454,678並且如果我想選擇表格產品內部連接表訂單where products.id in (orders.productids)
它只會列出一行,但如果我做同樣的選擇,並把where products.id in (454,678)
然後它列出我的兩行。MySQL選擇連接值的位置
由於這些值已經連接起來以便能夠在IN條件下使用,那麼它應該工作在那裏它可以讀取兩個ID的連接?
只是需要一些時間,並創建一個鏈接表有序PRODUCT_ID
orders_products:
這有很多優點,例如,您可以使用索引進行連接
+1正常化 – Drew 2014-10-06 17:54:31
謝謝你對此有所顧慮,但我想避免這種情況,以避免在預訂過程中進行更多查詢,所以我試圖將所有內容放在一列中,是不是有辦法查詢? – user1361389 2014-10-06 18:03:07
總有一種方法,但這不應該是遵循的方法。 – Gervs 2014-10-06 18:04:56
您的查詢現在是什麼樣的? – helllomatt 2014-10-06 17:46:28
您在單個列中存儲多個id值的設計「看起來像是一場勝利」,但它引入了* performance *和* data integrity *的問題。我強烈建議您閱讀Bill Karwin的優秀着作「** SQL反模式:避免數據庫編程陷阱**」的第2章。 (是的,可以寫一個可以做你想要的查詢,但我認爲給你一個例子不是一個好主意,因爲這會促進你使用不好的設計。) – spencer7593 2014-10-06 18:49:14