У меня есть MySQL базы данных. Ряд выглядит
name | name | groups | name
==============================
item | item | 1,3,5 | item
Мне нужно сделать запрос для:
Выберите все строки, которые имеют группа = 3. Как я это делаю? Есть ли простая строка запроса
Большое спасибо !
Нет ничего лучше, чем нормализовать ваш стол, но если вам все еще нужно сделать так, вот один из способов,
Пытаться where
пункт как это
$group = 3;
where groups IN("$group",",$group","$group,",",$group,")
Вы можете попробовать это
$search = 1;// or whatever you want to search
select * from table_name where groups like '%,$search,%' or groups like '$search,%' or groups like '%,$search'
или вы можете попробовать это простой
select * from table_name where find_in_set('3',groups ) <> 0
для получения дополнительной информации о find_in_set
пожалуйста, прочитайте http://www.w3resource.com/mysql/string-functions/mysql-find_in_set-function.php