30.04.2008, 23:38 | #1 |
Специалист
Регистрация: 08.03.2008
Сообщений: 246
Вес репутации: 209
|
Знатоки MySQL помогите.
Все привет.
1.Есть одно поле в таблице, содержащие несколько значений через запятую. К примеру: forum.childlist (1,2,3,4,5) 2. Есть второе поле, содержащие одно значение. К примеру forum.forumid (3) 3. Есть 3-е поле, содержащее строку К примеру forum.title ('строка') Мне нужно выбрать строку из 3-го поля с условием, что в первое поле содержит значение из 2-го поля. Зная значение во втором поле, легко определить есть ли оно в первом поле или нет Допустим, forum.forumid = 3, тогда: SELECT forum.title FROM forum WHERE forum.childlist LIKE '%3%' И все замечательно работает. Но возникла засада, когда это значение, заранее неизвестно и вычисляется в самом запросе, то есть аргументом LIKE является не константа, а возвращаемое из запроса значение этого поля SELECT forum.title FROM forum WHERE forum.childlist LIKE forum.forumid Этот вариант, работает, но без %, не ищет совпадения по всем значениям первого поля, а конструкция LIKE '%forum.forumid%' сразу превращает аргумент в константу и пытается найти уже именно строку 'forum.forumid' Кто-нибудь знает, как это можно победить? |
01.05.2008, 00:48 | #3 |
Специалист
Регистрация: 08.03.2008
Сообщений: 246
Вес репутации: 209
|
|
01.05.2008, 07:57 | #5 |
Специалист
Регистрация: 02.07.2007
Сообщений: 453
Вес репутации: 222
|
like CONCAT('%',forum.forumid,'%') и фсе
А вообще запрос не верен, надо искать like CONCAT('%,',forum.forumid,',%') - экранировать запятыми. и не забыть в данных хранить первую и последнюю запятую. Иначе не сможете работать более чем с 9тью форумами.. А вообще заведите себе таблицу парентов, или чилдов. таакая километровая кишка матчей, кто у кого чил, и кто у кого парент. Работает быстрее( потому что это не строка, это число) и гемора меньше
__________________
И как всегда это все ScanLog записывает |
01.05.2008, 08:48 | #7 |
Специалист
Регистрация: 02.07.2007
Сообщений: 453
Вес репутации: 222
|
вы не в теме
оператор % тока в лайке
__________________
И как всегда это все ScanLog записывает |
01.05.2008, 10:00 | #8 |
Специалист
Регистрация: 08.03.2008
Сообщений: 246
Вес репутации: 209
|
|
Опции темы | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с Mysql | Crudelis | Курилка | 46 | 02.07.2008 02:54 |
Есть знатоки WordPress? Можно сделать вертикальное выпадающее меню? | XAOC | Курилка | 4 | 23.06.2008 09:21 |
Совсем хитрый вопрос про MySQL | Kashey | Разработка и сопровождение сайтов | 2 | 13.11.2007 10:51 |
Репликация в MySQL | Kashey | Разработка и сопровождение сайтов | 1 | 20.10.2007 22:57 |
Часовой пояс GMT +3, время: 16:39.