Как не выводить лишние символы?
Как вывести из бд строки у которых есть символ '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;