Php 如何对按拆分的文本进行MySQL查询,

Php 如何对按拆分的文本进行MySQL查询,,php,mysql,select,separator,Php,Mysql,Select,Separator,我有mysql数据库。看起来像 name | name | groups | name ============================== item | item | 1,3,5 | item 我需要查询: 选择组=3的所有行。我是怎么做的?有简单的查询字符串吗 多谢各位 没有比规范化表更好的方法了,但是如果您仍然需要这样做,这里有一种方法 试试下面这样的where子句 $group = 3; where groups IN("$group",",$group","$group

我有mysql数据库。看起来像

name | name | groups | name
==============================
item | item | 1,3,5  | item
我需要查询:

选择组=3的所有行。我是怎么做的?有简单的查询字符串吗


多谢各位

没有比规范化表更好的方法了,但是如果您仍然需要这样做,这里有一种方法

试试下面这样的
where
子句

 $group = 3;
 where groups IN("$group",",$group","$group,",",$group,")

没有比规范化表更好的方法了,但是如果您仍然需要这样做,这里是一种方法

试试下面这样的
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
从表\u名称中选择*,其中在\u集合中查找\u('3',组)0
有关在集合中查找的更多信息,请阅读

$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
从表\u名称中选择*,其中在\u集合中查找\u('3',组)0

有关
find_in_set
的更多信息,请阅读

您的表格设计不好,这就是您出现此问题的原因。因此,您别无选择,只能创建一个过程(或PHP脚本),该过程获取每一行,拆分字符串,检查值并返回它,如果您要查找的组在其中。好的,我知道了,我需要将下一个表名为“groups_assocc”,并在两个表(行/id)之间建立连接。非常感谢。你的桌子设计不好,这就是为什么你有这个问题。因此,您别无选择,只能创建一个过程(或PHP脚本),该过程获取每一行,拆分字符串,检查值并返回它,如果您要查找的组在其中。好的,我知道了,我需要将下一个表名为“groups_assocc”,并在两个表(行/id)之间建立连接。非常感谢。