多列选择和条件

时间:2014-10-14 11:27:01

标签: php mysql

我试图弄清楚如何通过他的列名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匹配

0 个答案:

没有答案