Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 4

Запрос с пустым значением

08.05.2018, 12:38. Показов 3871. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте. Есть проблема. Нужно сделать в программе поиск по критериям автомобиля. Как сделать запрос чтобы если textBox пуст, отправлялся запрос с его пустым значенем, но чтобы искало все автомобили, а не те где поле пустое?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.05.2018, 12:38
Ответы с готовыми решениями:

Запрос из связной таблицы, когда id может быть пустым
Добрый день. Есть таблица table_1 id id_table_2 и таблица table_2 id_table_2 name

Как правильно написать запрос на поиск записей по полю с пустым значением?
как правильно написать запрос на поиск записей по полю с пустым значением ? Вот запрос отображает в таблице все записи в которых поле...

Вывод с пустым значением и с значением
Новичок в PHP программирование, решил попробовать написать небольшое веб-приложение для внесения IP адреса в базу данных, с дальнейшей...

5
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
08.05.2018, 13:30
Цитата Сообщение от LucenTTT Посмотреть сообщение
чтобы искало все автомобили, а не те где поле пустое
SQL
1
WHERE (param1 IS NULL) OR (fld1 = param1)
Добавлено через 16 секунд
Цитата Сообщение от LucenTTT Посмотреть сообщение
чтобы искало все автомобили, а не те где поле пустое
SQL
1
WHERE (param1 IS NULL) OR (fld1 = param1)
0
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 4
08.05.2018, 15:07  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
SQL
1
WHERE (param1 IS NULL) OR (fld1 = param1)
Сделал, но не выводит. Или я что-то не то сделал или не работает.\
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
if (radioButton3.Checked == true && radioButton4.Checked == false)
            {
                cmd.CommandText = string.Format("SELECT type,mark,model,year,region,fuel,gearbox,mileage,price,lengine,id FROM avtomob WHERE buy=0 and ((type='{0}') or (type is null)) and ((mark='{1}') or (mark is null)) and ((model='{2}') or (model is null)) and ((year>='{3}') and (year<='{4}') or (year is null)) and ((region='{5}') or (region is null)) and ((fuel='{6}') or (fuel is null)) and ((gearbox='{7}') or (gearbox is null)) and ((mileage>='{8}') and (mileage<='{9}') or (mileage is null)) and ((price>='{10}') and (price<='{11}') or (price is null)) and ((lengine>='{12}') and (lengine<='{13}') or (lengine is null)) and ((hp>=0'{14}') and (hp<='{15}') or (hp is nuul)) and ((drive='{16}') or (drive is null))", comboBox13.Text, comboBox16.Text, textBox9.Text, comboBox14.Text, comboBox17.Text, comboBox15.Text, comboBox12.Text, comboBox5.Text, textBox14.Text, textBox13.Text, textBox12.Text, textBox11.Text, textBox10.Text, textBox15.Text, textBox8.Text, textBox16.Text, comboBox4.Text);
                MySqlDataReader reader;
                // читаем результат
                using (reader = cmd.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
 
                        while (reader.Read())
                        {
                            dataGridView4.Rows.Add();
                            dataGridView4[0, dataGridView4.Rows.Count - 1].Value = reader.GetString("type");
                            dataGridView4[1, dataGridView4.Rows.Count - 1].Value = reader.GetString("mark") + " " + reader.GetString("model") + " " + reader.GetString("year");
                            dataGridView4[2, dataGridView4.Rows.Count - 1].Value = reader.GetString("gearbox");
                            dataGridView4[3, dataGridView4.Rows.Count - 1].Value = reader.GetString("mileage") + " тис.км";
                            dataGridView4[4, dataGridView4.Rows.Count - 1].Value = reader.GetString("fuel") + ", " + reader.GetString("lengine");
                            dataGridView4[5, dataGridView4.Rows.Count - 1].Value = reader.GetString("region");
                            dataGridView4[6, dataGridView4.Rows.Count - 1].Value = reader.GetString("price") + " грн";
                            dataGridView4[7, dataGridView4.Rows.Count - 1].Value = reader.GetString("id");
                        }
                    }
                }
            }
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
08.05.2018, 17:12
Цитата Сообщение от LucenTTT Посмотреть сообщение
Или я что-то не то сделал
Обычно условие проверяется слева направо. Именно поэтому надо сначала сравнивать с NULL, а потом уже с конкретным значением. Иначе сравнение с конкретным значением в случае, если параметр пуст, означает отсечение строки (значение выражения является NULL) и дальше проверка просто не идет.

Добавлено через 15 секунд
Цитата Сообщение от LucenTTT Посмотреть сообщение
Или я что-то не то сделал
Обычно условие проверяется слева направо. Именно поэтому надо сначала сравнивать с NULL, а потом уже с конкретным значением. Иначе сравнение с конкретным значением в случае, если параметр пуст, означает отсечение строки (значение выражения является NULL) и дальше проверка просто не идет.
0
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 4
10.05.2018, 08:57  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
Обычно условие проверяется слева направо. Именно поэтому надо сначала сравнивать с NULL, а потом уже с конкретным значением. Иначе сравнение с конкретным значением в случае, если параметр пуст, означает отсечение строки (значение выражения является NULL) и дальше проверка просто не идет.
Переделал, но что то все равно не работает

C#
1
cmd.CommandText = string.Format("SELECT type,mark,model,year,region,fuel,gearbox,mileage,price,lengine,id FROM avtomob WHERE buy=0 and ((type is null) or (type='{0})) and ((mark is null) or (mark='{1}')) and ((model is null) or (model='{2}')) and ((year is null) or (year>='{3}') and (year<='{4}')) and ((region is null) or (region='{5}')) and ((fuel is null) or (fuel='{6}')) and ((gearbox is null) or (gearbox='{7}')) and ((mileage is null) or (mileage>='{8}') and (mileage<='{9}')) and ((price is null) or (price>='{10}') and (price<='{11}')) and ((lengine is null) or (lengine>='{12}') and (lengine<='{13}')) and ((hp is null) or (hp>=0'{14}') and (hp<='{15}')) and ((drive is null) or (drive='{16}'))", comboBox13.Text, comboBox16.Text, textBox9.Text, comboBox14.Text, comboBox17.Text, comboBox15.Text, comboBox12.Text, comboBox5.Text, textBox14.Text, textBox13.Text, textBox12.Text, textBox11.Text, textBox10.Text, textBox15.Text, textBox8.Text, textBox16.Text, comboBox4.Text);
0
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 4
10.05.2018, 12:28  [ТС]
Grossmeister, может возможно вы меня неправильно поняли, мне нужно чтобы когда я отправлял запрос в MySQL, значение пустых textBox'ов тоже передавалось и выводило все значения. Тоесть, когда textBox отправляет пустое значение в запрос выводило все значения которые не есть пустыми.
Прилагаю скриншот формы и часть кода.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private void button5_Click(object sender, EventArgs e)
        {
            dataGridView4.Rows.Clear();
            dataGridView4.Visible = true;
            if (radioButton3.Checked == true && radioButton4.Checked == false)
            {
                cmd.CommandText = string.Format("SELECT type,mark,model,year,region,fuel,gearbox,mileage,price,lengine,id FROM avtomob WHERE buy=0 and ((type is null) or (type='{0})) and ((mark is null) or (mark='{1}')) and ((model is null) or (model='{2}')) and ((year is null) or (year>='{3}') and (year<='{4}')) and ((region is null) or (region='{5}')) and ((fuel is null) or (fuel='{6}')) and ((gearbox is null) or (gearbox='{7}')) and ((mileage is null) or (mileage>='{8}') and (mileage<='{9}')) and ((price is null) or (price>='{10}') and (price<='{11}')) and ((lengine is null) or (lengine>='{12}') and (lengine<='{13}')) and ((hp is null) or (hp>=0'{14}') and (hp<='{15}')) and ((drive is null) or (drive='{16}'))", comboBox13.Text, comboBox16.Text, textBox9.Text, comboBox14.Text, comboBox17.Text, comboBox15.Text, comboBox12.Text, comboBox5.Text, textBox14.Text, textBox13.Text, textBox12.Text, textBox11.Text, textBox10.Text, textBox15.Text, textBox8.Text, textBox16.Text, comboBox4.Text);
                MySqlDataReader reader;
                using (reader = cmd.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
 
                        while (reader.Read())
                        {
                            dataGridView4.Rows.Add();
                            dataGridView4[0, dataGridView4.Rows.Count - 1].Value = reader.GetString("type");
                            dataGridView4[1, dataGridView4.Rows.Count - 1].Value = reader.GetString("mark") + " " + reader.GetString("model") + " " + reader.GetString("year");
                            dataGridView4[2, dataGridView4.Rows.Count - 1].Value = reader.GetString("gearbox");
                            dataGridView4[3, dataGridView4.Rows.Count - 1].Value = reader.GetString("mileage") + " тис.км";
                            dataGridView4[4, dataGridView4.Rows.Count - 1].Value = reader.GetString("fuel") + ", " + reader.GetString("lengine");
                            dataGridView4[5, dataGridView4.Rows.Count - 1].Value = reader.GetString("region");
                            dataGridView4[6, dataGridView4.Rows.Count - 1].Value = reader.GetString("price") + " грн";
                            dataGridView4[7, dataGridView4.Rows.Count - 1].Value = reader.GetString("id");
                        }
                    }
                }
            }
Миниатюры
Запрос с пустым значением   Запрос с пустым значением  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.05.2018, 12:28
Помогаю со студенческими работами здесь

Сравнение textBox с пустым значением
Я пытаюсь сравнить textBox с пустым значением и в зависимости от результата выполнить определенный код if (textBox15.Text != null) ...

Удаление ключа с пустым значением
Есть небольшой массив из 30 связок ключ=&gt;значение есть ли какая ни-ть функция удаления связки если значение равно ''. Одно условие не...

Как исправить ошибку с пустым значением
Добрый день! хочу из NavigationView перекинуть в проект боковое меню. ВСе скопировал, адаптировал, но приложение теперь крашится и ...

Foreach - каждая вторая итерация с пустым значением
$request = 'SELECT `category` FROM `'.$table.'` GROUP BY `category` HAVING count(*)&gt;1;'; $result = mysqli_query($connect, $request); ...

Запрет ввода поля с пустым значением в форме
Коллеги ну очень надо - никак не могу сделать - заклинило в таблице - поле необязательное а в форме надо сделать так чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru