Задавайте вопросы, мы ответим
Вы не зашли.
Уважаемые спецы, подскажите пожалуйста как мне управиться с данным типом.
Пример:
Есть 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
В очередной раз спасибо вашему форуму
Неактивен