SQL LIKE кроме цифр в %

подскажите как выбрать только те записи, где есть 1

Такой запрос возвращает ещё те записи, где 1, 10, 11 и т.д.

SELECT * FROM `table` where value like '%1%'
| id | value    |
| 1  | 4,10     |
| 2  | 3,10,9,2 |
| 3  | 3,4,2,1  |
| 4  | 3,4,1,2  |
| 5  | 3,4,10,2  |

Т.е вернуть только записи с id равен 3 или 4


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

Автор решения: Герман Борисов

Если нужно именно через like, то нужно добавить с обеих сторон и от шаблона и от исходной строки разделители

SELECT * FROM `table` where CONCAT(',', value, ',') like '%,1,%'
→ Ссылка
Автор решения: Sergey

Вот способ через Regex

select * from table where value Regexp "((^|[,])pattern(($|[,])))+"

где pattern искомое значение

→ Ссылка