Intereting Posts
Как отправить сообщение Mandrill со специальными символами? PHP удаляет определенный элемент из массива Показать несколько маркеров на Картах Google с помощью PHP и MySQL Как исправить завиток: (35) Нельзя безопасно связываться со сверстниками: нет общего алгоритма шифрования (ов) Конкретная папка для каждого пользователя php Использование Gridfs под Laravel 5.3 с драйвером mongo-php-library 2.2 Переупорядочить строки записей базы данных через интерфейс, используя php REST GET с игнорируемым параметром, PHP Symfony 3 Mpdf ORM QueryBuilder с субобъектами Entity CodeIgniter session set-cookie duplicated – как решить Может ли PHP исключать символ новой строки при чтении строки за строкой? Cakephp 3 перенаправляет в beforeFilter родительского класса передача строковой переменной из php в JS-функцию Использование Mysqli bind_param с столбцами даты и времени? MySQL Alter Table Добавить поле до или после поля, уже присутствующего

Найти значение в строке с разделителями-запятыми mysql

У меня есть таблица в моей БД, которая выглядит так:

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%'