我想我在这里错过了一些明显的东西,但是…我有一个用户注册了一个$galleries=array('flowers','mountains','sky')
我保存(内爆)在SQL行galleryTypes像这样:flowers,mountains,sky
现在,当我搜索带有花和天空的用户时,如何从表中选择该用户?我试过这样写:
SELECT user FROM table WHERE galleryTypes = flowers OR galleryTypes = sky
但是运气不好…
谁能给我指个正确的方向?谢谢!Simple:
... WHERE galleryTypes IN ('flowers', 'mountains', 'sky')
如果 galleryTypes
只包含一个值,将工作。如果您在该字段中存储多个值,那么您将陷入非常非常糟糕的时间,并且最好学习数据库规范化。
试试这个:
SELECT user FROM table WHERE galleryTypes LIKE '%flowers%' OR galleryTypes LIKE '%sky%'
但是要注意现有的子字符串(例如'sky'也将匹配'skyline')!您可以通过将其存储为,flowers,mountains,sky,
(用逗号包围)并使用以下查询来解决该问题:
SELECT user FROM table WHERE galleryTypes LIKE '%,flowers,%' OR galleryTypes LIKE '%,sky,%'