我在表中有列,我将标签 ID 存储为 1|5|10
我想使用 mysql 查询来爆炸列
您可能想要做的不是像这样存储您的标签 ID。为他们单独制作一张桌子,您的问题自然会消失。
这称为规范化。
您可以链接 SUBSTRING_INDEX 来实现爆炸效果,但让我提醒您,这是一个可怕的数据库规范化解决方案,正如 Kos 所建议的那样。
如果您尝试选择中间列 (#|5|#) 中带有 5 的所有 MySQL 条目,您将使用以下查询:
SELECT * FROM table WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(table.field, '|', 2), '|', -1) = 5
@Everyone:这是一个可怕的解决方案,所以请不要计划使用它;但是,有时我们会遇到这样的情况,在对数据库模式进行更精细的检查之前,必须使用像这样的快速单行。