Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 以逗号分隔列,然后搜索其他匹配值?_Mysql - Fatal编程技术网

Mysql 以逗号分隔列,然后搜索其他匹配值?

Mysql 以逗号分隔列,然后搜索其他匹配值?,mysql,Mysql,想知道在mysql中是否有更简单的方法来实现这一点,而不是在PHP中每行循环一次查询。我需要为每个不同的ID获取具有相同类别的其他ID,然后将它们作为另一列输出,最好是以空格或逗号分隔。进一步的增强是搜索多个类别,并在逗号分隔的类别匹配时加入ID 我有一张这样的桌子: id name category 100 Thing0 Blue 101 Thing1 Red 102 Thing2 Blue,Red 103 Thing3 Blue id catego

想知道在mysql中是否有更简单的方法来实现这一点,而不是在PHP中每行循环一次查询。我需要为每个不同的ID获取具有相同类别的其他ID,然后将它们作为另一列输出,最好是以空格或逗号分隔。进一步的增强是搜索多个类别,并在逗号分隔的类别匹配时加入ID

我有一张这样的桌子:

id    name    category
100   Thing0  Blue
101   Thing1  Red
102   Thing2  Blue,Red
103   Thing3  Blue
id    category    new_col
100   Blue        102 103
101   Red         102
102   Blue,Red    100 101 103
103   Blue        100 102
我需要这样的输出:

id    name    category
100   Thing0  Blue
101   Thing1  Red
102   Thing2  Blue,Red
103   Thing3  Blue
id    category    new_col
100   Blue        102 103
101   Red         102
102   Blue,Red    100 101 103
103   Blue        100 102

问题id中的行是否放在新列中无关紧要。非常感谢您的帮助…

每个项目的最大类别数是多少?(请不要说“unlimited”,除非它真的是unlimited)这已经够复杂了,而且在SQL中做的事情也够难的了,我可能会创建一个控制台应用程序来实现这一点。不太可能超过3个类别。我想可能有一些mysql可以优化,而不是每个id的类别匹配查询,但也许它不仅仅是一个查询可以完成的。。。