Сохранен 55
https://2ch.hk/b/res/187529347.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Microsoft SQL Server/Базы данных Блет, вот допустим

 Аноним 03/12/18 Пнд 01:24:40 #1 №187529347 
1271883138.png
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 #2 №187529453 
>>187529347 (OP)
select from xui where name like "pizda" AND age like "djigurda"
Аноним 03/12/18 Пнд 01:28:19 #3 №187529457 
ответь сначала для себя зачем ты используешь UNION, когда есть AND в WHERE?
Аноним 03/12/18 Пнд 01:30:18 #4 №187529502 
>>187529457
Так это соединение двух таблиц, а не продолжение предиката
Аноним 03/12/18 Пнд 01:30:54 #5 №187529522 
>>187529457
Потому что этот долбаёб скорее всего даже не знает в каких таблицах у него что лежит и вообще схему своей бд.
Аноним 03/12/18 Пнд 01:33:38 #6 №187529590 
>>187529457
Потому что если использовать AND то это будет обзательным условием. А если я потом стираю одно поле с 1999, чтобы мне показало только Вась, то начинаю сосать залупу, ведь запрос будет возвращать Вась у которых вместо даты рождения ""
Аноним 03/12/18 Пнд 01:34:35 #7 №187529613 
>>187529347 (OP)
Блять я нихуя не понял
Аноним 03/12/18 Пнд 01:35:14 #8 №187529632 
>>187529522
Это все одна таблица. Поиск по одной таблице. Из этой таблицы мне надо выводить записи, которые соотвествуют введенной хуйне. Ввел Вася в поле имя, ввел родился 1999 и он мне выводит всех Вась 1999 года рождения. А если стеру 1999, то всех Вась, а если стеру и Васю, то просто всех.
Аноним 03/12/18 Пнд 01:39:15 #9 №187529749 
>>187529590
чтобы не сосать залупу нужно на уровне приложения проверять при построении запроса не пустое ли значение
Аноним 03/12/18 Пнд 01:39:26 #10 №187529756 
select name, birth from persons where name like 'name' and birth = '01.01.1900'

дата рождения должна быть точная. я не знаю схемы твоей бд поэтому написал как понял
Аноним 03/12/18 Пнд 01:40:59 #11 №187529803 
>>187529347 (OP)
if age then:
query_with_age
else:
query_without_age
Аноним 03/12/18 Пнд 01:41:53 #12 №187529833 
>>187529756
А если я потом стираю 1999 в приложении, чтобы мне показало только Вась, то он мне залупу на воротник положит, ведь по запросу ему надо будет вывести Вась у которых дата рождения ""
Аноним 03/12/18 Пнд 01:43:08 #13 №187529868 
>>187529803
А если у меня будет 5 полей. Которые будут случайным образом заполняться для поиска? Мне сколько комбинаций if написать придется? Факториал 5?
Аноним 03/12/18 Пнд 01:43:49 #14 №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 #15 №187529913 
oekaki.png
Аноним 03/12/18 Пнд 01:46:14 #16 №187529951 
>>187529913
три хуевины снизу это поля куда вводят инфу для отбора по ней данных из таблицы. могут быть заполнены все 3 или ни одного или два.
Аноним 03/12/18 Пнд 01:48:15 #17 №187530006 
>>187529868
Я вообще хуй пойму, что у тебя за вопрос. "Если 5 полей" какие-то появилось в условии. А если у тебя вишмастер базу данных удолит

Во все поля вводят либо дату, либо имя или что?
Аноним 03/12/18 Пнд 01:48:21 #18 №187530012 
>>187529868
If field(i) != '' {
sql = field(i).sqlName + ' = ' + field(i).value;
}
Аноним 03/12/18 Пнд 01:49:58 #19 №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 #20 №187530147 
>>187529888

Сделал как ты сказал. Но идет выборка только по первому параметру, по имено, а второй параметр работает неправильно. Ну т.е. я ввожу там что-то, а он выдает вообще левую хуйню.
Аноним 03/12/18 Пнд 01:54:41 #21 №187530180 
>>187530006
Ну там может быть 5 полей. Я могу ввести в одном имя и мне должно показать всех с таким именем, если введу еще и дату, то всех с таким именем и датой. И так далее. А если стеру дату, то снова только с таким именем.
Аноним 03/12/18 Пнд 01:54:51 #22 №187530183 
>>187529632
Тогда зачем ты делаешь UNION?
Аноним 03/12/18 Пнд 01:57:38 #23 №187530251 
>>187529833
Так ты поставь условие, если у тебя поле с датой пустое, то пусть используется другой запрос, без даты рождения.
Аноним 03/12/18 Пнд 01:58:02 #24 №187530259 
>>187530058
Я если там 5 полей и они случайно заполнены? Например заполнены будут Родился и 3ий телефон. Я заебусь твои условия описывать
Аноним 03/12/18 Пнд 01:58:41 #25 №187530278 
>>187530251
И че мне написать тогда запросов 54321?
Аноним 03/12/18 Пнд 01:59:33 #26 №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 #27 №187530316 
>>187530278
Короче описать все комбинации, какие моугут быть из 5 чисел, которые могут быть либо заполнены, либо нет.
Аноним 03/12/18 Пнд 02:00:11 #28 №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 #29 №187530343 
>>187530180
Бля перебираешь циклом все поля.
Если не пустое — берешь значение
Если пустое — любой символ
Это в несколько строк должно делаться
Аноним 03/12/18 Пнд 02:01:57 #30 №187530375 
>>187530307
А теперь напиши тоже самое при условии, что у меня например Имя, Фамилия, Отчество, ДатаРождения, Телефон, Поликлиника, Номер Полиса. И сортировать надо данные из таблица по этим полям. Я введу ДатаРОждения 1995 и Фамилия Петров и он мне должен всех Петровых вывести 1995 года.
Аноним 03/12/18 Пнд 02:02:02 #31 №187530378 
>>187529347 (OP)
Нахуй ты про базы данных. Мне через четыре часа сдавать, а я только что обнаружил, что у меня даже AccessА на компе нету
Аноним 03/12/18 Пнд 02:02:55 #32 №187530402 
>>187530343
Любые символы
Бля

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

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

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

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

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

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

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

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