Есть ли способ исключить конкретную строку из списка в столбце - PullRequest
0 голосов
/ 30 апреля 2019

Сейчас я пытаюсь создать фиктивную панель мониторинга, но столбцу присваивается список. Взять например

список ['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 голосов
/ 30 апреля 2019

Вам необходимо добавить подстановочные знаки (%) вокруг буквы, так как оно написано, оно исключит только те значения, которые в буквальном смысле 'c'.

SELECT
    *
FROM XXX
WHERE
    status = 'open'
    tag = 'alphabet'
    AND NOT type = 'bugs'
    AND list_item NOT LIKE '%c%'
LIMIT
    100
0 голосов
/ 30 апреля 2019

Просто замените 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
0 голосов
/ 30 апреля 2019

Если list_item - строка, вы должны поставить NOT LIKE "% c%".

Символ% обозначает любой символ.

Если list_item является списком (как следует из названия), вы должны использовать

list_item NOT IN ['%c%']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...