id | name | permission
1 | John | 1,4,3
2 | mike | 7,4,3
3 | sky | 3,2,1
это моя база данных
Теперь у меня есть выборочный запрос с условием где
например выбрать из friend
где разрешение = ‘4’
но я не могу получить какие-либо данные, так что делать?
Пожалуйста помоги
Выберите * у друга, где FIND_IN_SET («4», разрешение);
Похоже, у вас есть несколько разрешений, хранящихся вместе в строке.
Для вас запрос выглядит так:
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 поиск значений в строке через запятую
http://www.w3resource.com/mysql/string-functions/mysql-find_in_set-function.php
Это можно сделать с помощью следующего запроса:
select * from friend where permission like '%4%'