![]()  | 
		
Задавайте вопросы, мы ответим
Вы не зашли.
Уважаемые спецы, подскажите пожалуйста как мне управиться с данным типом.
Пример:
Есть 2 таблицы.
Column    Type    
idDegree    int(11) Auto Increment     
DeName    varchar(45)
DeCodeName    varchar(45)    
и
Column    Type    
idPeople    int(11) Auto Increment     
FirstName    varchar(255)     
LastName    varchar(255)     
MidName    varchar(255)          
Degrees    set('1','2','3','4','5','6','7','8','9','10')
Необходимо выбрать все записи из первой таблицы, значение поля DeCodeName которых попадает в set второй таблицы.
Пытался это сделать таким вот запросом:
select DeName from Degree where DeCodeName in(select Degrees from People where idPeople = 1)
Но в результате получается ерунда.
Также подозреваю, что значениями set'а не логично цифры делать, изначально пытался сделать выборку по id первой таблицы, но результат был таким же...
Как быть?
Неактивен

varchar с set должен нормально сравниваться. Можете привести пример данных?
Неактивен
idPeople        FirstName        LastName        MidName            idObject        Degrees
1            Карпик        Александр    Петрович            555            1,2,3
2            Скрипников    Виктор        Александрович    555            4,5,6
3            Уставич        Георгий        Афанасьевич        555            1,2
4            Жуков         Борис        Николаевич        555            2,4
idDegree        DeName                    DeCodeName
1            Доктор техничеких наук        1
2            Профессор                2
3            Зав.кафедрой                3
4            Кандидат технических наук    4
5            Доцент                    5
6            Зам. зав. кафедрой            6
Вот пример...
Форум все порубал 
 Но вроде бы понятно.
Отредактированно owlpic (17.06.2010 15:57:18)
Неактивен

Хм, что-то я протупил, глядя на Ваш запрос. Вам нужно использовать
FIND_IN_SET 
 http://dev.mysql.com/doc/refman/5.1/en/ … ind-in-set
Т.е. что-то типа
select DeName from Degree, People
where FIND_IN_SET(DeCodeName, Degrees) AND idPeople = 1
Неактивен
Спасибо огромное, все работает как надо 
 Это я протупил, читая ман 
 Раз 10 прочитал и только вы меня надоумили, что же на самом деле делает функция FIND_IN_SET ![]()
В очередной раз спасибо вашему форуму ![]()
Неактивен