Как не выводить лишние символы?

Как вывести из бд строки у которых есть символ '1', но при этом также имеется строки с '11', они не должны выводится, like и regexp не сильно помогают, либо я команду подходящую у них не знаю.


Ответы (3 шт):

Автор решения: Vit Saha

1 вариант

select * from

(select * from table_name
where column like '%1%' ) a

where a.column not like '%11%'

2 вариант

select * from table_name
where column like '%1%' AND column NOT like '%11%'
→ Ссылка
Автор решения: PZBird

Вашу задачу можно решить с помощью regexp пример

Регулярное выражение [[:<:]]1[[:>:]] поможет найти все вхождения 1 целиком, вне зависимости от расположения.

Тут [[:<:]] - нотация, обозначающая начало слова и [[:>:]] - конец слова (источник)

→ Ссылка
Автор решения: Sergey Moiseenko
SELECT * FROM t WHERE LENGTH(c)-length(REPLACE(c,'1',''))=1;
→ Ссылка