mysql中的外卡

时间:2016-07-22 06:46:32

标签: mysql wildcard

我有一个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中执行此操作。任何帮助将非常感激。提前致谢

1 个答案:

答案 0 :(得分:0)

您可以尝试:

SELECT *
    FROM db.table
    WHERE Topic LIKE '**A/B/_**'

基于MySQL's Pattern Matching

  

使用“_”匹配任何单个字符,使用“%”匹配任意字符   字符数(包括零字符)

上述查询仅匹配任何单个字符。所以我们只有在知道了想要匹配的字符长度时才能使用它。

否则,我们必须使用Regular Expressions

但请注意,更好的数据库设计可以更轻松地解决您的问题。检查您是否可以对表格进行标准化,以便顺利查询记录。