有没有一种方法可以从列的列表中排除特定的字符串

时间:2019-04-30 18:57:49

标签: mysql sql

现在,我正在尝试构建一个模拟仪表盘,但是一列有一个归属于它的列表。举个例子

['a','b','c','d']列为“字母”列的一部分

现在说,如果我要排除其中带有“ c”的任何行,我将如何创建一个查询以从查询中排除字母c?我认为使用LIKE可以,但是当我尝试使用NOT LIKE xxx时,它仍会填充包含'c'的列表。

SELECT
    *
FROM XXX
WHERE
    status = 'open'
    tag = 'alphabet'
    AND NOT type = 'bugs'
    AND list_item NOT LIKE 'c'
LIMIT
    100

3 个答案:

答案 0 :(得分:0)

如果list_item是字符串,则应放置NOT LIKE'%c%'。

%符号表示任何字符。

如果list_item是一个列表(顾名思义),则应使用

list_item NOT IN ['%c%']

答案 1 :(得分:0)

您需要在字母周围添加通配符(%),因为它的写法只会排除字面上是'c'的值。

SELECT
    *
FROM XXX
WHERE
    status = 'open'
    tag = 'alphabet'
    AND NOT type = 'bugs'
    AND list_item NOT LIKE '%c%'
LIMIT
    100

答案 2 :(得分:0)

只需将NOT LIKE替换为NOT REGEXP,就可以了。使用REGEXP,您不需要%

SELECT
    *
FROM XXX
WHERE
    status = 'open'
    tag = 'alphabet'
    AND NOT type = 'bugs'
    AND list_item NOT REGEXP 'c'
LIMIT
    100