2

我在表中有列,我将标签 ID 存储为 1|5|10

我想使用 mysql 查询来爆炸列

4

2 回答 2

5

您可能想要做的不是像这样存储您的标签 ID。为他们单独制作一张桌子,您的问题自然会消失。

这称为规范化

于 2010-12-03T05:21:12.790 回答
2

您可以链接 SUBSTRING_INDEX 来实现爆炸效果,但让我提醒您,这是一个可怕的数据库规范化解决方案,正如 Kos 所建议的那样。

如果您尝试选择中间列 (#|5|#) 中带有 5 的所有 MySQL 条目,您将使用以下查询:

SELECT * FROM table WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(table.field, '|', 2), '|', -1) = 5

@Everyone:这是一个可怕的解决方案,所以请不要计划使用它;但是,有时我们会遇到这样的情况,在对数据库模式进行更精细的检查之前,必须使用像这样的快速单行。

于 2011-02-10T07:35:15.390 回答