как использовать, где условие из хранимых данных в массиве

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

это моя база данных

Теперь у меня есть выборочный запрос с условием где

например выбрать из friend где разрешение = ‘4’

но я не могу получить какие-либо данные, так что делать?

Пожалуйста помоги

0

Решение

Выберите * у друга, где FIND_IN_SET («4», разрешение);

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 поиск значений в строке через запятую

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

2

Это можно сделать с помощью следующего запроса:

select * from friend where permission like '%4%'
0
По вопросам рекламы [email protected]