我试图通过使用逗号分隔的字符串作为搜索查询从规范化数据库获得值。其目的是,它应该采用逗号分隔的字符串,并将其分成单独的部分,然后MySql可以与规范化数据库中的标记进行匹配。
的例子:我的规范化键数据库如下所示:
表:键
<表类>
R_id
Tag_id
tbody><<tr>R1 T1 R1 T5 R1 T6 R2T2 R2T1 R3T5 R3T6 表类>
FIND_IN_SET()不工作,如果你的逗号分隔列表中有空格:
mysql> select find_in_set(456, '123, 456, 789') as pos;
+-----+
| pos |
+-----+
| 0 |
+-----+
mysql> select find_in_set(456, '123,456,789') as pos;
+-----+
| pos |
+-----+
| 2 |
+-----+
但除此之外,FIND_IN_SET()不是一种很好的搜索方式,因为它不能用索引进行优化。您的搜索必然会进行表扫描,并且性能很差。