Используйте SELECT с полем + переменной в MySQL - PullRequest
0 голосов
/ 14 июля 2020

Здравствуйте, я хочу выбрать значение поля id из Mysql table where this field + php varibiable находится между двумя другими значениями. Я не знаю, почему не работает.

$variable= 1;
$sin= 1;
$des= 3;

$query= "SELECT id AS id_ FROM users_table WHERE ((field + $variable) BETWEEN $sin AND $des) AND (otherfield = 1)";

Должно работать, потому что field == 1 И otherfield = 1

field(1) + $variable(1) == 2 // so is between $sin and $des

поле is bigint (35) и othefield is Int (1)

Прошу прощения, мой engli sh, может быть, лучше редактировать заголовок

Ответы [ 2 ]

3 голосов
/ 14 июля 2020

Я не эксперт по MySQL, но, насколько мне известно, в выражении:

WHERE field BETWEEN a AND b

Поле должно быть столбцом таблицы, а не значением, потому что то, что вы сравниваете - это значение столбца, а не число. Что вам следует сделать, так это использовать переменную при сравнении BETWEEN. Что-то вроде:

"SELECT id AS id_ FROM users_table WHERE field BETWEEN ".($sin + $variable)." AND ".($des - $variable)." AND otherfield = 1"

Конечный результат после того, как вы PHP оцените это выражение, будет примерно таким:

SELECT id AS id_ FROM users_table WHERE field BETWEEN 5 AND 8 AND otherfield = 1

Я не уверен, что именно представляют ваши переменные, но вы должны переместите свою операцию в часть сравнения.

1 голос
/ 14 июля 2020

Вы используете поле + переменная $, это означает, что значение в MySql Поле должно быть столбцом таблицы, а не значением.

SELECT id AS id_ FROM users_table WHERE column BETWEEN $sin + $variable AND $des - $variable AND othercolumn  = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...