Целочисленный запрос SQL, найти целое число в пределах /- 1

#mysql #sql

#mysql #sql

Вопрос:

Если я хочу запустить инструкцию SQL, например

 "SELECT integername from tblintegerlist where integerlist ..."
  

У меня есть список чисел, таких как

 integername
1
2
3
4
5
  

итак, мне нужны результаты для / — 1 поиска, поэтому для ‘4’ я бы получил строки 3,4,5 в качестве результатов.

Комментарии:

1. Вы не определяете, что такое «integerlist».

Ответ №1:

Если я правильно вас понимаю

 where integername >= n-1 AND integername <= n 1
  

Ответ №2:

Похоже, вы хотите написать SQL с предложением > и < .

 SELECT integername FROM tbintegerlist 
WHERE integername >= @val - 1 AND integername <= @val   1
  

Вы также можете предпочесть это:

 SELECT integername FROM tbintegerlist 
WHERE integername BETWEEN @val - 1 AND @val   1
  

Но вы должны не забыть проверить свою базу данных, чтобы увидеть, являются ли предложения «between» включающими или исключающими. Для некоторых баз данных «между» означает «больше или равно меньшему значению и меньше большего значения».

Комментарии:

1. Between в MySQL включено.

2. Oracle BETWEEN также включает.

3. Значение PostgreSQL МЕЖДУ включительно: postgresql.org/docs/8.2/static/functions-comparison.html

Ответ №3:

 SELECT integername 
FROM tblintegerlist 
WHERE (integername-<variable>) BETWEEN -1 AND 1
  

Комментарии:

1. Это решение действительно кажется более приятным, потому что оно позволяет избежать повторения имени переменной, но применение вычисления к integername , скорее всего, не позволит серверу использовать индекс в этом столбце, если он есть.