Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2012, 17:10   #1
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию IN оператор

Если использовать IN для одной записи дважды, он продублирует, или нет?
например where id in (26,26,26)
SovereignSun вне форума Ответить с цитированием
Старый 02.05.2012, 17:41   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Если значение test_expression равно любому значению, которое вернул subquery, или значению expression из разделенного запятыми списка, будет возвращено значение TRUE. В противном случае возвращенное значение — FALSE.
Это из справки по оператору IN для MSSQL (http://msdn.microsoft.com/ru-ru/libr...=sql.100).aspx). Т.е. не дублируется. Не думаю, что для других СУБД по другому
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.05.2012, 17:56   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Нет. С чего бы, это критерий поиска.
А зачем в IN дублировать данные кстати?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.05.2012, 09:43   #4
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Нет. С чего бы, это критерий поиска.
А зачем в IN дублировать данные кстати?
Работаю с большим объемом информации.. где в программе построен запрос IN поиск по данным.. но необходимо сделать запрос по множеству данных для каких-то записей, а для других только по одному, вот и придется.. дважды дублировать.
SovereignSun вне форума Ответить с цитированием
Старый 03.05.2012, 10:39   #5
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

Цитата:
IN implies DISTINCT. SQL Server is smart enough to notice it, and will generate same plans for both queries
Порусски In самостоятельно удалит дубликаты

Ps кусок коммента стырил со стековервлоу=))
Reskov вне форума Ответить с цитированием
Старый 03.05.2012, 10:51   #6
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию

Цитата:
Сообщение от Reskov Посмотреть сообщение
Порусски In самостоятельно удалит дубликаты

Ps кусок коммента стырил со стековервлоу=))
Спасибо, я с английским дружу, понял сразу. это как Select Distinct * from table1 where id in (26,32,50,32) да?
SovereignSun вне форума Ответить с цитированием
Старый 03.05.2012, 10:51   #7
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Ну внутренняя кухня IN наверное зависит от субд, а вот то что его идеалогически можно заменить на кучу OR (id = 26 OR id = 26 OR id = 26) это факт. А OR проверить на дублирование автору наверное не составит труда.
=master= вне форума Ответить с цитированием
Старый 03.05.2012, 10:54   #8
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию

суть в том что в программе запрос расчитан только но множественный поиск..тоесть так не Strscn на наличии множества значений или одной, и в соответствии с этим, подставления другого запроса, тоесть есть база данных, в которой записи идут через запятую, и программа в запросе использует значение этого столбца как переменную в запросе IN ('+variable+')';

Будет ли IN работать для одной записи в MySQL? тоесть id IN (13)

Цитата:
Как это записи через запятую?
Тоесть к примеру:
id
1,8
14,98,65
89,29
64,28

и т.д.

а мне нужно одиночную запись в IN увидеть

Последний раз редактировалось SovereignSun; 03.05.2012 в 11:04.
SovereignSun вне форума Ответить с цитированием
Старый 03.05.2012, 11:02   #9
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Как это записи через запятую?
=master= вне форума Ответить с цитированием
Старый 03.05.2012, 14:16   #10
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

Цитата:
IN работать для одной записи в MySQL? тоесть id IN (13)
дададададада
Цитата:
Набранное вами сообщение слишком короткое. Увеличьте ваше сообщение до 10 символов.
Reskov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условный оператор,оператор цикла и массив Klark73 Microsoft Office Excel 1 19.12.2011 17:09
Оператор выбора или условный оператор[Перенесено из JavaSE] merhaba1992 Помощь студентам 1 20.01.2011 17:06
Условный оператор. Оператор выбора. Pascal Сержuk Помощь студентам 4 17.11.2010 12:50
Вычислить используя, оператор цикла for и оператор безусловного пе Knubbe Помощь студентам 1 18.12.2009 10:24