|
|
|
| Всем привет!
Пишу запрос:
SELECT * FROM `gds` WHERE `gds_type`='Дверь' AND (`gds_size_on` < '80' AND `gds_size_off` > '80')
|
Мускул пишет что нет подходящих строк, хотя я их специально создал
Я хочу получить строки в которых поле gds_size_on меньше 80, а поле gds_size_off больше 80.
Почему данный запрос не работает?
За ранее спасибо
Вот дамп этой таблицы
-- phpMyAdmin SQL Dump
-- version 4.0.5
-- http://www.phpmyadmin.net
--
-- Хост: 127.0.0.1:3306
-- Время создания: Сен 16 2013 г., 00:16
-- Версия сервера: 5.5.33-log
-- Версия PHP: 5.3.27
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- База данных: `test`
--
-- --------------------------------------------------------
--
-- Структура таблицы `gds`
--
CREATE TABLE IF NOT EXISTS `gds` (
`gds_id` int(10) NOT NULL AUTO_INCREMENT,
`gds_size_on` varchar(20) NOT NULL,
`gds_size_off` varchar(20) NOT NULL,
`gds_type` varchar(10) NOT NULL,
`gds_lestnica` varchar(10) NOT NULL,
`gds_dangerous_area` varchar(10) NOT NULL,
`gds_drilling` varchar(1) NOT NULL,
`gds_buk` varchar(1) NOT NULL,
`gds_derevo_metal` varchar(1) NOT NULL,
`gds_metal` varchar(1) NOT NULL,
PRIMARY KEY (`gds_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
--
-- Дамп данных таблицы `gds`
--
INSERT INTO `gds` (`gds_id`, `gds_size_on`, `gds_size_off`, `gds_type`, `gds_lestnica`, `gds_dangerous_area`, `gds_drilling`, `gds_buk`, `gds_derevo_metal`, `gds_metal`) VALUES
(1, '70', '130', 'Дверь', '', '', '1', '1', '', ''),
(2, '100', '160', 'Лестница', '', '', '', '', '', ''),
(3, '50', '100', 'Дверь', '', '', '', '', '', '');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
| |
|
|
|
|
|
|
|
для: mister_pipin
(16.09.2013 в 00:20)
| | Может потому, что сравниваете строки, а не числа? | |
|
|
|
|
|
|
|
для: Yuriev
(16.09.2013 в 00:29)
| | Тип поля в базе varchar, а 80 представлена в виде строки. Получается, что я строку сравниваю со строкой. Как бы должно работать. Но не работает( | |
|
|
|
|
|
|
|
для: mister_pipin
(16.09.2013 в 00:40)
| | Зачем varchar для числовых значений? Измените тип, varchar не выгодно для таких данных. | |
|
|
|
|
|
|
|
для: mister_pipin
(16.09.2013 в 00:20)
| |
"SELECT * FROM `gds` WHERE `gds_type`='Дверь' AND `gds_size_on` < 80 AND `gds_size_off` > 80"
|
| |
|
|
|
|
|
|
|
для: confirm
(16.09.2013 в 00:38)
| | Спасибо! То, что нужно! | |
|
|
|
|
|
|
|
для: mister_pipin
(16.09.2013 в 00:42)
| | Читайте выше, и меняйте тип данных полей. | |
|
|
|
|
|
|
|
для: confirm
(16.09.2013 в 00:44)
| | Понял, спасибо | |
|
|
|