我有一個表格:tbl_offer
(offer_name,location)。對於特定優惠,我在位置列中有多個位置,並以逗號分隔。Mysql獲取數據
實施例:
如果報價是offer1
然後我在位置列Bangalore, Mumbai, Chennai
。
現在想編寫一個查詢,它將分別獲取每個位置(用逗號分隔特定商品)。我想選擇offer1
它應該在單獨的記錄中獲取Bangalore Mumbai and Chennai
。
我有一個表格:tbl_offer
(offer_name,location)。對於特定優惠,我在位置列中有多個位置,並以逗號分隔。Mysql獲取數據
實施例:
如果報價是offer1
然後我在位置列Bangalore, Mumbai, Chennai
。
現在想編寫一個查詢,它將分別獲取每個位置(用逗號分隔特定商品)。我想選擇offer1
它應該在單獨的記錄中獲取Bangalore Mumbai and Chennai
。
正如@Cylindric告訴你的,如果你可以改變數據庫的設計!
創建兩個表格,一個用於優惠,另一個用於位置。
OFFERS (id, name)
LOCATIONS (offer_id, name)
所以,(例如)你在商供應(1, 'offer1')
和
(1, 'Bangalore'), (1, 'Mumbai') and (1, 'Chennai')
的地點。
您的查詢會更容易:
SELECT o.name, l.name FROM offers o
INNER JOIN locations l ON o.id = l.offer_id
說實話,你應該有三個表,以避免地方重複:
OFFERS (id, name)
LOCATIONS (id, name)
OFFERS_LOC (offer_id, loc_id)
你在商供應
(1, 'offer1')
,
(1, 'Bangalore'), (2, 'Mumbai') and (3, 'Chennai')
在LOCATIONS和
(1, 1), (1, 2) and (1, 3)
OFFERS_LOC。
您的查詢就會
SELECT o.name, l.name FROM offers o
INNER JOIN offers_loc ol ON o.id = ol.offer_id
INNER JOIN locations l ON ol.loc_id = l.id
非常感謝您的建議Mcrco。 – bid
如果你還在開發這個應用程序,將其更改*現在*這樣,你不存儲在一個字段逗號分隔的列表。否則[搜索這裏](http://stackoverflow.com/search?q=mysql+split+column)成千上萬的關於同樣的事情的結果。 – Cylindric
雅..我有想法..謝謝了很多。 – bid