我有一个表格: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