Php 如何对按拆分的文本进行MySQL查询,
我有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
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)之间建立连接。非常感谢。