PDA

Просмотр полной версии : [Вопрос] SQL запрос, нужна помощь..



StevenH
16.07.2017, 23:59
Здравствуйте. Даже не знаю, можно ли сделать такой SQL запрос.

Есть следующая структура:
http://i.imgur.com/vwVUH2K.png

Хочу кое-что реализовать, но суть не в этом...

Допустим, есть какой-то порог, между одной ячейкой и ячейкой выше. Грубо говоря, надо как то составить запрос, чтобы определяло сколько min_score должно быть по might ("силе" грубо говоря).

Например:
1. Might (сила) у меня 65.000, такой "порог" входит между 2-ой и 3-ой записью (если считать с единицы, сама запись 2ая), значит min_score должно быть 1450
2. Might у меня 149.500, такой "порог" входит в между 6-ой и 7-ой записью (сама запись 6ая), значит min_score должно быть 2300

Ну и так далее, если кто понял, помогите составить такой SQL запрос (если возможно)...

DeimoS
17.07.2017, 01:06
Как-то так

SELECT min_score FROM (SELECT * FROM bd_name WHERE might < значение_силы ORDER BY might < значение_силы, might DESC LIMIT 1) as buff

В виде кода это будет так:

new might = 65000,
min_score;
format(query_string, sizeof(query_string), "SELECT min_score FROM (SELECT * FROM bd_name WHERE might < %d ORDER BY might < %d, might DESC LIMIT 1) as buff", might, might);
new Cache:result = mysql_query(mysql_connection_ID, query_string, true);
cache_get_value_name_int(0, "min_score", min_score);
cache_delete(result);

StevenH
17.07.2017, 01:13
Как-то так

SELECT min_score FROM (SELECT * FROM bd_name WHERE might < значение_силы ORDER BY might < значение_силы, might DESC LIMIT 1) as buff

В виде кода это будет так:

new might = 65000,
min_score;
format(query_string, sizeof(query_string), "SELECT min_score FROM (SELECT * FROM bd_name WHERE might < %d ORDER BY might < %d, might DESC LIMIT 1) as buff", might, might);
new Cache:result = mysql_query(mysql_connection_ID, query_string, true);
cache_get_value_name_int(0, "min_score", min_score);
cache_delete(result);


Как всегда выручаешь, благодарю, надо чуть подтянуть запросы и всякие операторы в MySQL ;3