现在,我正在尝试构建一个模拟仪表盘,但是一列有一个归属于它的列表。举个例子
将['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
答案 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