如何在数组中使用存储数据的条件

时间:2015-02-20 10:39:56

标签: php mysql sql database where-in

id | name | permission
1  | John | 1,4,3
2  | mike | 7,4,3
3  | sky  | 3,2,1

这是我的数据库

现在我已经获取了条件

的选择查询

e.g。 friend中选择*,其中权限=' 4'

但我无法获取任何数据,所以该怎么办?

请帮忙

3 个答案:

答案 0 :(得分:2)

从朋友中选择*,其中FIND_IN_SET(' 4',权限);

答案 1 :(得分:2)

看起来你有多个权限存储在一个字符串中。

对您而言,查询如下:

select * from friend where permission='4'

这意味着任何包含4的东西。 对于mysql,它看到:

select * from friend where permission= ONLY '4'
// Meaning the permissions column can ONLY CONTAIN 4.
// Also, ONLY is meant as a visual, don't use it in queries.

尝试:

find_in_set('4',permission) <> 0
// This means It needs to find number 4 and can't return 0 results.

查看以下内容以获取更多信息:

MySQL query finding values in a comma separated string

http://www.w3resource.com/mysql/string-functions/mysql-find_in_set-function.php

答案 2 :(得分:0)

可以通过以下查询来完成:

select * from friend where permission like '%4%'