如何检查sql行是否包含任何值


How to check if sql row contains any of the values?

我想我在这里错过了一些明显的东西,但是…我有一个用户注册了一个$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,%'