2013-11-25 3 views
0

У меня есть запись «123456789» в моем столе.Выбрать оператор со смещением как

Select * from map where col like '%1%5%6%7%9'. 

Я хочу, чтобы получить записи, где порядок входной последовательности матчей, но я также хочу, чтобы убедиться, что расстояние между любыми 2 согласующих цифр меньше 2.

Есть ли способ я может указать смещение?

enter image description here

Вход является 189, и он выбирает запись, но я хочу 1.8.9, чтобы быть в пределах 2 друг с другом. 12879 будет приемлемым выходом, но 123456789 не будет.

+0

Это звучит действительно теоретически. Можете ли вы показать пример данных и ожидаемый результат? –

+0

Что такое подходящая цифра? Вы имеете в виду смежную цифру? – Hogan

+0

& hogan. Да, я имел в виду смежные цифры. –

ответ

1

Ниже утверждения требует от 3 до 5 символов между 1 и 5:

SELECT * FROM map WHERE col LIKE '%1___%5%6%7%9' AND col NOT LIKE '%1______%5%6%7%9%' 

Использование _ сек может заставить любое количество символов.

EDIT: Исправлен персонаж. Источник: SQLite expression

Заезд this SQL Fiddle sample.

+0

Он не работает в sqlite. Также я хочу ограничить его 1-3 символами между 1 и 5, не более 3. –

+0

Я успешно прошел тестирование в оболочке sqlite3. Действительно, это довольно общий ... –

+0

Typo! Исправленный. –

Смежные вопросы