[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Строку преобразовать в перечисление чисел
Shuriken
Доброго времени суток!

Есть строка поде answer со значением random15-67,68,69,65,66,70:65,66,67,68,69

Необходимо перечень айдишников после ":" вставить в запрос в другую таблицу, т.е. условие должно выглядеть так:
id in (65,66,67,68,69)
Делаю так:
id in (substring_index(answer,":",-1))
но т.к. substring_index(answer,":",-1) - строка, то в запрос подставляется только первое значение.
kaww
первое что пришло на ум это :
where locate(concat(',',id,','), concat(','substring_index(answer,":",-1),',')) > 0

но это уж очень костыльное решение. быть может имеет смысл answer хранить в отдельной таблице а не строкой через запятую
Shuriken
Цитата (kaww @ 4.07.2014 - 09:00)
первое что пришло на ум это :
<pre class="sh_sourceCode" rel="sql"><span class="sh_keyword">where</span> <span class="sh_function">locate(concat(</span><span class="sh_string">','</span><span class="sh_symbol">,</span>id<span class="sh_symbol">,</span><span class="sh_string">','</span><span class="sh_symbol">),</span> <span class="sh_function">concat(</span><span class="sh_string">','</span><span class="sh_function">substring_index(</span>answer<span class="sh_symbol">,</span><span class="sh_string">":"</span><span class="sh_symbol">,-</span><span class="sh_number">1</span><span class="sh_symbol">),</span><span class="sh_string">','</span><span class="sh_symbol">)) ></span> <span class="sh_number">0</span></pre>
но это уж очень костыльное решение. быть может имеет смысл answer хранить в отдельной таблице а не строкой через запятую

Это не я делал, я работаю с уже готовой системой и в ней это не единственное бредовое решение))) Мне надо вывести результаты тестирование в более наглядном виде, чем это предоставляет система.
Если интересно, то это система дистанционного обучения Moodle

P.S. Спасибо, работает только можно и без concat:
locate(id, substring_index(answer,":",-1)) > 0

раньше я не знал о функции locate
kaww
Shuriken, без concat выберешь не только ид 65,66,67,68,69 но и 5,6,7,8,9
Shuriken
Цитата (kaww @ 4.07.2014 - 09:46)
Shuriken, без concat выберешь не только ид 65,66,67,68,69 но и 5,6,7,8,9

Точно, спасибо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.