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

时间:2014-07-29 20:26:23

标签: php mysql

我想我错过了一些明显的东西,但是...我有一个用户注册了$galleries=array('flowers','mountains','sky') 我在SQL row galleryTypes中保存了那些(imploded):flowers,mountains,sky

现在,当我搜索有鲜花和天空的用户时,如何从表中选择该用户? 我试过像:

SELECT user FROM table WHERE galleryTypes = flowers OR galleryTypes = sky

但没有运气......

有人能指出我正确的方向吗? 谢谢!

2 个答案:

答案 0 :(得分:0)

简单:

... WHERE galleryTypes IN ('flowers', 'mountains', 'sky')

可以使用 IF galleryTypes只包含一个值。如果您在该字段中存储了多个值,那么您将进入一个非常非常难看的时间,并且最好不要了解database normalization

答案 1 :(得分:0)

试试这个:

SELECT user FROM table WHERE galleryTypes LIKE '%flowers%' OR galleryTypes LIKE '%sky%'

但请注意现有的子串(例如,天空'也会匹配' skyline')!您可以通过将其存储为,flowers,mountains,sky,(因此用逗号包围)来解决该问题并使用此查询:

SELECT user FROM table WHERE galleryTypes LIKE '%,flowers,%' OR galleryTypes LIKE '%,sky,%'