PHP MYSQL Сравнение строк при определении оператора WHERE - PullRequest
0 голосов
/ 20 ноября 2010

Допустим, у меня есть эти строки БД

id | storage | used | status
1  -   100   -  0   -    1
2  -   1000  - 5000 -    1

Мне нужно сравнить строки «Хранилище» и «Используется»

Я хочу выбрать строки, ГДЕ состояние = 1 и столбец «хранилище»> столбец «используется».

Я пробовал ГДЕ состояние = '1' И хранилище> используется

Он должен сообщить номер строки назад # 1, но это не так.

Ответы [ 3 ]

0 голосов
/ 20 ноября 2010
SELECT * FROM `table` WHERE status = '1' AND storage > used

должно дать вам правильное решение, как упомянуто VoteyDisciple, убедитесь, что status и used имеют числовой тип.

0 голосов
/ 20 ноября 2010

вы можете использовать SELECT * FROM table WHERE status = '1' AND storage > used, но тип данных хранилища и используемый должны быть NUMERIC, а не VARCHAR.

Если вы все еще не получили правильные ответы, это должно быть проблемой с вашей структурой хранения данных.

Спасибо!

0 голосов
/ 20 ноября 2010

Ну, WHERE status=1 AND storage > used правильно.Если вы попробовали это и не вернули строку с id=1, что-то не так с вашими данными.

Являются ли storage и used числовыми столбцами?Или они хранятся как VARCHAR (или вздох , TEXT)?Если это так, вы не сможете сравнивать их так, как хотите, и сначала вам придется преобразовать или привести их к числовым типам.Было бы лучше изменить тип на числовой (т. Е. INT или DECIMAL или любой другой подходящий тип).

...