Блет, вот допустим у меня есть 3 текстбокса в которых на событие изменения строки, ну т.е. ввод в эти текстбоксы текста, стоит запись этого текста в глобальные перемнные. А потом мне надо базу данных отфильтровать по введенным данным. Ну поиск, короче по нескольким полям одновременно. Чтобы я ввел в одно поле Вася, в другое 1999 и мне бы вывелись все Васи 1999 года рождения. Как это сделать? Казалось бы все просто, но нихуя не работает. SELECT FROM persons WHERE Name LIKE ' "+name+" ' UNION SELECT FROM persons WHERE Birth LIKE ' " +birth+ " ' Пиздец. Просто не работает. Я даже понять не могу почему. Ввожу в поле там Васю, он мне каких-то левых не Вась выдает, просто убирая по какой-то причине часть записей из таблицы никак и это никак не связано с тем, что я ввожу. Почему так?
>>187529457 Потому что если использовать AND то это будет обзательным условием. А если я потом стираю одно поле с 1999, чтобы мне показало только Вась, то начинаю сосать залупу, ведь запрос будет возвращать Вась у которых вместо даты рождения ""
>>187529522 Это все одна таблица. Поиск по одной таблице. Из этой таблицы мне надо выводить записи, которые соотвествуют введенной хуйне. Ввел Вася в поле имя, ввел родился 1999 и он мне выводит всех Вась 1999 года рождения. А если стеру 1999, то всех Вась, а если стеру и Васю, то просто всех.
>>187529756 А если я потом стираю 1999 в приложении, чтобы мне показало только Вась, то он мне залупу на воротник положит, ведь по запросу ему надо будет вывести Вась у которых дата рождения ""
>>187529803 А если у меня будет 5 полей. Которые будут случайным образом заполняться для поиска? Мне сколько комбинаций if написать придется? Факториал 5?
>>187529590 Напиши что типа select * from person where (name = $a or $a is null) and (birth = $b or $b is null) А вообще зайди на сайт sql-ex.ru там бесплатно ахуенно учат sql'ю
Сделал как ты сказал. Но идет выборка только по первому параметру, по имено, а второй параметр работает неправильно. Ну т.е. я ввожу там что-то, а он выдает вообще левую хуйню.
>>187530006 Ну там может быть 5 полей. Я могу ввести в одном имя и мне должно показать всех с таким именем, если введу еще и дату, то всех с таким именем и датой. И так далее. А если стеру дату, то снова только с таким именем.
>>187529347 (OP) Господи, не дай бох с твоим творчеством по работе столкнуться. Нормально делать как-то так: strSQL = "SELECT FROM persons WHERE Name LIKE '" + name + "'" if birth <> Null Then strSQL = strSQL & " AND Year(Birth) = " + birth
Т.е. добавлять к запросу строки если соответствующие поля не пусты.
>>187530307 А теперь напиши тоже самое при условии, что у меня например Имя, Фамилия, Отчество, ДатаРождения, Телефон, Поликлиника, Номер Полиса. И сортировать надо данные из таблица по этим полям. Я введу ДатаРОждения 1995 и Фамилия Петров и он мне должен всех Петровых вывести 1995 года.
>>187530429 Косяк в скл коде значит, я хз, сам гугли как задаются любые символы в мсскуль и есть ли у это подводные камни. Своди код к минимуму, где точно будет работать и разбирайся где именно ошибка
>>187530596 Да все я объяснил уже. Как тебе еще объяснить? Есть Таблица в Базе. Есть форма виндоуз. На форме полей: Имя, Фамилия, Размер хуя, Поликлиника и т.д. Они соотвесвуют столбцам таблицы. Я хочу ввести например в эти боксы Вася и 6 поликлиника и он мне должен из таблицы показать всех вась в 6 поликлинике.
>>187531079 Ты тупой что ли? Я уже писал выше 2 раза. Если я стеру поле ДатаРождения и оставлю только Имя - Вася, то он мне выведет всех Вась с ДатойРождения "" которых в таблице нету ни одного.
Тебе уже дали ответ >>187530696 Как видишь на скрине, в одном запросе учтено, что поле может быть не заполнено. Тебе даже не нужно программно проверять пустоту полей и конструировать из этого запрос.
Прошу все же пройти на хуй ознакомиться с основами sql.
>>187531359 Ты вот это серьезно? Ты не видишь, что это один и тот же запрос с разными входными данными? Или может быть, ты не видишь комментария, который там написан о том, что "вася" - это входные данные?
Блет, вот допустим у меня есть 3 текстбокса в которых на событие изменения строки, ну т.е. ввод в эти текстбоксы текста, стоит запись этого текста в глобальные перемнные. А потом мне надо базу данных отфильтровать по введенным данным. Ну поиск, короче по нескольким полям одновременно. Чтобы я ввел в одно поле Вася, в другое 1999 и мне бы вывелись все Васи 1999 года рождения. Как это сделать?
Казалось бы все просто, но нихуя не работает.
SELECT FROM persons WHERE Name LIKE ' "+name+" ' UNION SELECT FROM persons WHERE Birth LIKE ' " +birth+ " '
Пиздец. Просто не работает. Я даже понять не могу почему. Ввожу в поле там Васю, он мне каких-то левых не Вась выдает, просто убирая по какой-то причине часть записей из таблицы никак и это никак не связано с тем, что я ввожу. Почему так?