我试图弄清楚如何通过他的列名p.e。
从表中选择一个项目strucutre看起来像这样
表items
id | name | column_1 | column_2 | column_3 |
1 | nm1 | 1 | 4 | 7,8 |
2 | nm2 | 2,3 | 4 | 9 |
3 | nm3 | 3,1 | 4 | 7 |
表columns
id | c_name |
1 | cnm1 |
2 | cnm2 |
3 | cnm3 |
表column_values
id | c_id | value |
1 | 1 | abcd |
2 | 1 | cdbh |
3 | 1 | dsff |
4 | 2 | wewe |
5 | 2 | cgbh |
6 | 2 | cdlh |
7 | 3 | adbh |
8 | 3 | qdbh |
9 | 3 | pdbh |
所以,当我想找到" abcd"我试过了
"SELECT a.* FROM items a, columns b, column_values c WHERE c.`value` LIKE '%abcd%' GROUP BY a.`id`"
但是我知道没有任何连接就会发现什么,所以我走得更远
"SELECT a.* FROM items a, columns b, column_values c WHERE c.`value` LIKE '%abcd%' AND b.`id` = c.`c_id` GROUP BY a.`id`"
仍未与项目
正确连接以下问题是列数量不断变化,名称包含列的id,值是列值的ID。
所以我需要通过他的名字来选择项目,这是"名称+"列号中的column_id由FIND IN SET导致如果我查找abcd它是id 1并且有两个项目具有id 1在column_1
第1项和第2项
ALSO的值为AI,因此不存在重复的可能性,因此无需检查column_id以在项目表的正确列中进行搜索
它可以在0到30 p.e之间工作。它将在column_1,column_2 column_3中搜索,直到30为id匹配