2016-06-08 84 views
1

我有这个MySQL查询,它工作得很好,我只需要为properties.advantages.中的每个id抓取advantages.value正如您在图像中看到的那样,列Advantages设置得很好(至少对于我,我没有创建这个),ID由-分隔。我怎样才能获得这些价值?从表中选择值,ID在一列

SELECT 
properties.id, 
(SELECT types.value FROM types WHERE types.id = properties.type_id) as types, 
properties.price, 
properties.town_id, 

**(SELECT advantages......),** 

towns.id, 
towns.value 
FROM properties 
LEFT JOIN towns 
ON properties.town_id=towns.id 
WHERE properties.published='1' 

enter image description hereenter image description here

+0

有什么问题吗? – sagi

+0

嗯,对不起,我需要获得这些值,对于列 –

回答

1

我猜这是你遇到问题的行?

**(SELECT advantages......),** 

您可以使用LIKECONCAT()对它们进行比较:

SELECT a.advantagesCol FROM advantages a 
WHERE CONCAT('-',properties.id,'-') LIKE a.Id_Column 
+0

中的每个ID,我无法获得任何值,结果始终为NULL。如果一列'属性。优点'具有'-1-',那么表'优势值'中的选定值应该是“很好”。如果一列有'-1-2-3-',则选定的值应该是“大,靓丽,差”。在嵌套SELECT语句中可以使用MySQL中是否存在foreach或类似的东西? –