使用逗号分隔的列表作为搜索查询



我试图通过使用逗号分隔的字符串作为搜索查询从规范化数据库获得值。其目的是,它应该采用逗号分隔的字符串,并将其分成单独的部分,然后MySql可以与规范化数据库中的标记进行匹配。

的例子:我的规范化键数据库如下所示:

表:键

<表类> R_id Tag_id tbody><<tr>R1T1R1T5R1T6R2T2R2T1R3T5R3T6

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()不是一种很好的搜索方式,因为它不能用索引进行优化。您的搜索必然会进行表扫描,并且性能很差。

最新更新