Это всё моё не здоровое стремление хранить сложные данные в текстовом формате вместо суперреляционного формата...
Я хотел создать текстовое поле содержащее мультиселект из справочника
В текстовое поле пишем
В справочнике пишем
| Код | +--------+--------+ | code | mame | +--------+--------+ | 1 | яблоки | | 2 | груши | | 3 | сливы | | 4 | морковь| +--------+--------+
|
на выходе хотим получить выбранные в мультиселекте пункты
делается это так
| Код | SELECT GROUP_CONCAT(plant_decode SEPARATOR "\n") FROM (SELECT plants.code, IF(INSTR(CONCAT("|", "1|2|3", "|") , CONCAT("|", plants.code, "|"))>0,plants.name,"") as plant_decode FROM
(SELECT "1" as code, "яблоки" as name UNION SELECT "2" as code, "груши" as name UNION SELECT "3" as code, "сливы" as name UNION SELECT "4" as code, "морковь" as name) as plants
WHERE
IF(INSTR(CONCAT("|", "1|2|3", "|") , CONCAT("|", plants.code, "|"))>0,1,0)<>0) as groupc
|
но эта штука не втюхивается в запрос :(
весь цивилизованный мир наверное хранит сразу значения без кодов вот так
и не надо ничё перекодировывать... |