У меня есть таблица в моей БД, которая выглядит так:
member_id name mgroup_others member_group_id 1 Name1 2,3,10 1 2 Name2 4,5,10 1 3 Name3 6,7,10 1 4 Name4 8,9 1
Мне нужно создать инструкцию SELECT, которая выбирает всех членов. WHERE указанное целое число находится в списке сумасшедших сущностей «grouproup_others». Так, например, я бы написал инструкцию SQL, которая выберет всех членов, где «mgroup_others» содержит «10», и он вернет члены 1, 2 и 3, но не 4, поскольку 10 не находится в этом поле. Любая помощь будет принята с благодарностью! Благодарю. Я пишу это и на PHP.
Поскольку mgroup_others
является столбцом varchar
если вы просто используете LIKE
оператор, отличный от FIND_IN_SET()
как
select * from table1 where mgroup_others like '%10'
Вы также можете использовать FIND_IN_SET()
как FIND_IN_SET()
ниже
select * from table1 where find_in_set(10,mgroup_others)
См. Демонстрационную скрипту здесь http://sqlfiddle.com/#!2/034711/2
SELECT * FROM table WHERE FIND_IN_SET(10,mgoup_others)>0
Это временное решение, в производстве db это будет медленнее, чем турбо-улитка.
Использовать LIKE
SELECT * FROM yourtable WHERE mgroup_others LIKE '%10%'