2015-12-21 66 views
-2

我有以下的数据库结构:MySQL的搜索分隔,使用PHP

id | name   | size 
------------------------- 
1 | Men's Jacket | S,M,L 
2 | Men's Jacket | M,L 
3 | Men's Jacket | S 

我想要得到的结果与size中号仅

我知道该怎么做,使用PHP的explode() & foreach(),但它需要太多的内存10k +产品。

+4

然后修复您的数据库结构并对其进行规范化处理,从而使问题无法解决。 –

+0

使用'FIND_IN_SET' – splash58

+0

尺寸表:prod_id,尺寸。 1 | S,1 | M,1 | L,2 | M等 – 2015-12-21 21:50:18

回答

-1

要获得唯一的M的结果:(例如 'M')

更新您的SQL使用其中where size = "M"

子句要得到的结果是使用M:(例如“M ”, 'S,M', 'S,M,L', 'M,L')

更新您的SQL中使用的where size like "%M%"

+0

这个答案有什么问题? –

-1

where子句我刚刚了解了MySQL的find_in_set()功能:

SELECT * FROM products WHERE find_in_set('M', size)<>0