[Ответить в тред] Ответить в тред

Check this out!

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
54 | 3 | 16

Аноним 03/12/18 Пнд 01:24:40  187529347  
1271883138.png (276Кб, 582x327)
Microsoft SQL Server/Базы данных

Блет, вот допустим у меня есть 3 текстбокса в которых на событие изменения строки, ну т.е. ввод в эти текстбоксы текста, стоит запись этого текста в глобальные перемнные. А потом мне надо базу данных отфильтровать по введенным данным. Ну поиск, короче по нескольким полям одновременно. Чтобы я ввел в одно поле Вася, в другое 1999 и мне бы вывелись все Васи 1999 года рождения. Как это сделать?
Казалось бы все просто, но нихуя не работает.
SELECT FROM persons WHERE Name LIKE ' "+name+" ' UNION SELECT FROM persons WHERE Birth LIKE ' " +birth+ " '
Пиздец. Просто не работает. Я даже понять не могу почему. Ввожу в поле там Васю, он мне каких-то левых не Вась выдает, просто убирая по какой-то причине часть записей из таблицы никак и это никак не связано с тем, что я ввожу. Почему так?
Аноним 03/12/18 Пнд 01:28:16  187529453
>>187529347 (OP)
select from xui where name like "pizda" AND age like "djigurda"
Аноним 03/12/18 Пнд 01:28:19  187529457
ответь сначала для себя зачем ты используешь UNION, когда есть AND в WHERE?
Аноним 03/12/18 Пнд 01:30:18  187529502
>>187529457
Так это соединение двух таблиц, а не продолжение предиката
Аноним 03/12/18 Пнд 01:30:54  187529522
>>187529457
Потому что этот долбаёб скорее всего даже не знает в каких таблицах у него что лежит и вообще схему своей бд.
Аноним 03/12/18 Пнд 01:33:38  187529590
>>187529457
Потому что если использовать AND то это будет обзательным условием. А если я потом стираю одно поле с 1999, чтобы мне показало только Вась, то начинаю сосать залупу, ведь запрос будет возвращать Вась у которых вместо даты рождения ""
Аноним 03/12/18 Пнд 01:34:35  187529613
>>187529347 (OP)
Блять я нихуя не понял
Аноним 03/12/18 Пнд 01:35:14  187529632
>>187529522
Это все одна таблица. Поиск по одной таблице. Из этой таблицы мне надо выводить записи, которые соотвествуют введенной хуйне. Ввел Вася в поле имя, ввел родился 1999 и он мне выводит всех Вась 1999 года рождения. А если стеру 1999, то всех Вась, а если стеру и Васю, то просто всех.
Аноним 03/12/18 Пнд 01:39:15  187529749
>>187529590
чтобы не сосать залупу нужно на уровне приложения проверять при построении запроса не пустое ли значение
Аноним 03/12/18 Пнд 01:39:26  187529756
select name, birth from persons where name like 'name' and birth = '01.01.1900'

дата рождения должна быть точная. я не знаю схемы твоей бд поэтому написал как понял
Аноним 03/12/18 Пнд 01:40:59  187529803
>>187529347 (OP)
if age then:
query_with_age
else:
query_without_age
Аноним 03/12/18 Пнд 01:41:53  187529833
>>187529756
А если я потом стираю 1999 в приложении, чтобы мне показало только Вась, то он мне залупу на воротник положит, ведь по запросу ему надо будет вывести Вась у которых дата рождения ""
Аноним 03/12/18 Пнд 01:43:08  187529868
>>187529803
А если у меня будет 5 полей. Которые будут случайным образом заполняться для поиска? Мне сколько комбинаций if написать придется? Факториал 5?
Аноним 03/12/18 Пнд 01:43:49  187529888
>>187529590
Напиши что типа select * from person where (name = $a or $a is null) and (birth = $b or $b is null)
А вообще зайди на сайт sql-ex.ru там бесплатно ахуенно учат sql'ю
Аноним 03/12/18 Пнд 01:44:56  187529913
oekaki.png (8Кб, 400x400)
Аноним 03/12/18 Пнд 01:46:14  187529951
>>187529913
три хуевины снизу это поля куда вводят инфу для отбора по ней данных из таблицы. могут быть заполнены все 3 или ни одного или два.
Аноним 03/12/18 Пнд 01:48:15  187530006
>>187529868
Я вообще хуй пойму, что у тебя за вопрос. "Если 5 полей" какие-то появилось в условии. А если у тебя вишмастер базу данных удолит

Во все поля вводят либо дату, либо имя или что?
Аноним 03/12/18 Пнд 01:48:21  187530012
>>187529868
If field(i) != '' {
sql = field(i).sqlName + ' = ' + field(i).value;
}
Аноним 03/12/18 Пнд 01:49:58  187530058
>>187529833
ну теперь я понял всю ебанутость твоей идеи.

select name, birth from persons where name like 'name'
or
(name like 'name' and birth like 'birth')
Аноним 03/12/18 Пнд 01:53:33  187530147
>>187529888

Сделал как ты сказал. Но идет выборка только по первому параметру, по имено, а второй параметр работает неправильно. Ну т.е. я ввожу там что-то, а он выдает вообще левую хуйню.
Аноним 03/12/18 Пнд 01:54:41  187530180
>>187530006
Ну там может быть 5 полей. Я могу ввести в одном имя и мне должно показать всех с таким именем, если введу еще и дату, то всех с таким именем и датой. И так далее. А если стеру дату, то снова только с таким именем.
Аноним 03/12/18 Пнд 01:54:51  187530183
>>187529632
Тогда зачем ты делаешь UNION?
Аноним 03/12/18 Пнд 01:57:38  187530251
>>187529833
Так ты поставь условие, если у тебя поле с датой пустое, то пусть используется другой запрос, без даты рождения.
Аноним 03/12/18 Пнд 01:58:02  187530259
>>187530058
Я если там 5 полей и они случайно заполнены? Например заполнены будут Родился и 3ий телефон. Я заебусь твои условия описывать
Аноним 03/12/18 Пнд 01:58:41  187530278
>>187530251
И че мне написать тогда запросов 54321?
Аноним 03/12/18 Пнд 01:59:33  187530307
>>187530180
Ну хуй знает где ты там факториал увидел

for i in range 5:
----name = field.get_name()
----age = field.get_age()
if name and age:
----q_with_age
else:
----q_without_age
Аноним 03/12/18 Пнд 01:59:50  187530316
>>187530278
Короче описать все комбинации, какие моугут быть из 5 чисел, которые могут быть либо заполнены, либо нет.
Аноним 03/12/18 Пнд 02:00:11  187530327
>>187529347 (OP)
Господи, не дай бох с твоим творчеством по работе столкнуться.
Нормально делать как-то так:
strSQL = "SELECT FROM persons WHERE Name LIKE '" + name + "'"
if birth <> Null Then strSQL = strSQL & " AND Year(Birth) = " + birth

Т.е. добавлять к запросу строки если соответствующие поля не пусты.
Аноним 03/12/18 Пнд 02:00:42  187530343
>>187530180
Бля перебираешь циклом все поля.
Если не пустое — берешь значение
Если пустое — любой символ
Это в несколько строк должно делаться
Аноним 03/12/18 Пнд 02:01:57  187530375
>>187530307
А теперь напиши тоже самое при условии, что у меня например Имя, Фамилия, Отчество, ДатаРождения, Телефон, Поликлиника, Номер Полиса. И сортировать надо данные из таблица по этим полям. Я введу ДатаРОждения 1995 и Фамилия Петров и он мне должен всех Петровых вывести 1995 года.
Аноним 03/12/18 Пнд 02:02:02  187530378
>>187529347 (OP)
Нахуй ты про базы данных. Мне через четыре часа сдавать, а я только что обнаружил, что у меня даже AccessА на компе нету
Аноним 03/12/18 Пнд 02:02:55  187530402
>>187530343
Любые символы
Бля

Короче логика должна быть понятна
Аноним 03/12/18 Пнд 02:03:56  187530429
>>187530343
Так не работает. Я же пишу. Запрос вроде правильный. А не работает.
Аноним 03/12/18 Пнд 02:05:25  187530484
>>187530327
Ну нихуя ты умный. Счас попробую, но чувствую не заработает. Не уходи 15 минут.
Аноним 03/12/18 Пнд 02:06:28  187530505
>>187530429
Косяк в скл коде значит, я хз, сам гугли как задаются любые символы в мсскуль и есть ли у это подводные камни.
Своди код к минимуму, где точно будет работать и разбирайся где именно ошибка
Аноним 03/12/18 Пнд 02:09:48  187530596
>>187529347 (OP)
Ты не удосужился поучить основы sql
Ты не понимаешь, чего ты хочешь
Ты не можешь объяснить логику твоей "программы" даже себе

и ты приходишь на двач, и пишешь нам
>Microsoft SQL Server/Базы данных

Иди ты на хуй, анон. Ты просишь без уважения
Аноним 03/12/18 Пнд 02:13:35  187530696
изображение.png (43Кб, 1810x905)
/thread
Аноним 03/12/18 Пнд 02:13:58  187530709
>>187529347 (OP)
SELECT * FROM persons WHERE name LIKE "Вася" AND bdate LIKE "1993%"
Аноним 03/12/18 Пнд 02:23:49  187530965
>>187530596
Да все я объяснил уже. Как тебе еще объяснить?
Есть Таблица в Базе. Есть форма виндоуз. На форме полей: Имя, Фамилия, Размер хуя, Поликлиника и т.д. Они соотвесвуют столбцам таблицы. Я хочу ввести например в эти боксы Вася и 6 поликлиника и он мне должен из таблицы показать всех вась в 6 поликлинике.
Аноним 03/12/18 Пнд 02:28:33  187531079
>>187530965
Ну и чем тебя банальный AND не устроил?
Аноним 03/12/18 Пнд 02:34:33  187531236
>>187530327
Ты хуй, короче. Представь, что у нас заполнено не поле Имя, а поле Рождение и Поликлиника. И все. Не работает нихуя.
Аноним 03/12/18 Пнд 02:35:55  187531276
>>187531079
Ты тупой что ли? Я уже писал выше 2 раза. Если я стеру поле ДатаРождения и оставлю только Имя - Вася, то он мне выведет всех Вась с ДатойРождения "" которых в таблице нету ни одного.
Аноним 03/12/18 Пнд 02:37:05  187531313
>>187531236>>187531276

Тебе уже дали ответ >>187530696
Как видишь на скрине, в одном запросе учтено, что поле может быть не заполнено. Тебе даже не нужно программно проверять пустоту полей и конструировать из этого запрос.

Прошу все же пройти на хуй ознакомиться с основами sql.
Аноним 03/12/18 Пнд 02:38:50  187531357
>>187531236
Криворукий, плес, если обязательных полей для поиска может не быть, значит WHERE полностью должна собираться из подстрок.
Аноним 03/12/18 Пнд 02:38:56  187531359
>>187531313
Я не понял, что там. Там два запроса селект. Как мне их в один собрать?
Аноним 03/12/18 Пнд 02:39:42  187531376
>>187531357
И как мне собрать?
Аноним 03/12/18 Пнд 02:40:20  187531389
>>187531359
Ты вот это серьезно?
Ты не видишь, что это один и тот же запрос с разными входными данными? Или может быть, ты не видишь комментария, который там написан о том, что "вася" - это входные данные?
Аноним 03/12/18 Пнд 02:41:45  187531414
SELECT *
FROM Persons
WHERE Name LIKE '%' + name_field + '%'
AND Age LIKE '%' + age_field + '%'
Аноним 03/12/18 Пнд 02:42:55  187531443
>>187531389
Да не работает. Сецчас еще раз попробую. Не уходи.
Аноним 03/12/18 Пнд 02:45:41  187531512
>>187531313
че за хуита? '' = '' и что он должен тут вывести с таким условием?
Аноним 03/12/18 Пнд 02:46:49  187531536
>>187531443>>187531512

>даешь скрин с работающим запросом и пояснениями
>в ответ голословное "не работает" и наиглупейший вопрос

Все ясно. ты зеленый. Настолько тупые и криворукие существа не могут дожить до того возраста, когда уже могут писать на двощ.

Пожуй сажи.
Аноним 03/12/18 Пнд 02:56:48  187531779
Тысяча извинений. Кажется работает, просто я в глаза ебусь и пропустил там в запросе что-то.
Аноним 03/12/18 Пнд 03:00:20  187531864
>>187531779
Ничего страшного.
Удачно тебе отфильтровать вась по дате рождения 1990';DROP DATABASE poliklinika;/*
Аноним 03/12/18 Пнд 03:02:37  187531919
>>187531864
А не нехуя. Работает только с 2мя полями. Сейчас прописал на всех и не работает.
Аноним 03/12/18 Пнд 03:13:28  187532145
>>187531919
Ебать я даун. Извините.


Топ тредов
Избранное