我有一个MySql表,其中有一个格式为
的列Topic
=================
|| **A/B/C/D** ||
|| **A/B** ||
|| **A/B/C** ||
|| **A/B/E** ||
|| **A/B/F** ||
=================
我想要的是,只获取主题直到我想要的水平说我想要一个B的子主题列表。我应该得到C,E和F的列表。注意我不应该得到与C和D一起排 我试过用 从db.table中选择distinct(Topic),其中Topic就像'A / B /%';
但是在我的情况下我得到所有级别的所有记录,直到D,我不需要。
我不确定如何在MySql中执行此操作。任何帮助将非常感激。提前致谢
答案 0 :(得分:0)
您可以尝试:
SELECT *
FROM db.table
WHERE Topic LIKE '**A/B/_**'
使用“_”匹配任何单个字符,使用“%”匹配任意字符 字符数(包括零字符)
上述查询仅匹配任何单个字符。所以我们只有在知道了想要匹配的字符长度时才能使用它。
否则,我们必须使用Regular Expressions。
但请注意,更好的数据库设计可以更轻松地解决您的问题。检查您是否可以对表格进行标准化,以便顺利查询记录。