#mysql #database
#mysql #База данных
Вопрос:
Я изучаю MySQL, и у меня есть случай, у меня есть такая таблица:
id, level, minpost, maxpost
1, 'Newbie', 0, 99
2, 'Enthusiast', 100, 499
3, 'Activist', 500, 749
4, 'Socialite', 750, 999
Итак, как мне узнать, какой «уровень», если у меня 80 сообщений?
Должен ли я использовать select between или, может быть, у вас есть какие-либо предложения по моей проблеме?
ps. Я не могу опубликовать изображение: (
Ответ №1:
SELECT level FROM <table> WHERE <myLevel> BETWEEN minpost AND maxpost
BETWEEN
Оператор выполнит следующее:
expr BETWEEN min AND max
Равно:
(min <= expr AND expr <= max)
Ответ №2:
select *
from the_table
where 80 between minpost AND maxpost
Постскриптум: не утруждайте себя публикацией изображений, код SQL (который можно скопировать) намного лучше
Ответ №3:
select id,level from <table> where minpost >= <minpost> and maxpost <= <maxpost>
Комментарии:
1. OP не хочет находить строки между диапазоном значений. Он хочет найти строку, значение которой находится в диапазоне minpost и maxpost.
2. Я не говорю, что это не сработает, но это не то, чего хочет OP, насколько я понимаю его вопрос. Вы предполагаете, что у вас есть 2 значения в where condition
<minpost>
и<maxpost>
, в то время как OP имеет только одно.3. Я думал, что у него есть эта схема (id, level,,minpost, maxpost) с minpost и maxpost в виде двух столбцов.
4. да, вы правы. Вы меня неправильно понимаете. Ваш запрос должен выглядеть как:
select id,level from <table> where post >= minpost and post <= maxpost
Ответ №4:
Да, вы можете использовать BETWEEN.
Это не что иное, как краткая форма value>=minvalue AND value<=maxvalue
Запрос будет выглядеть как:
select * from `tableName`
where <valueToCheck> between minpost AND maxpost;