Как разрешить обратно поддерживать больше типов файлов?

Да и Нет ...

«Да»:

Нормализовать данные (настоятельно рекомендуется) - т.е. разбить столбец категории, чтобы каждая категория была отдельной. .. тогда вы можете просто запросить его в обычном faschion ...

«Нет»: пока вы держите эту «псевдоструктуру», будет несколько проблем (производительность и другие), и вы будете должен сделать что-то похожее на:

SELECT * FROM MyTable WHERE categories LIKE 'c2,%' OR categories = 'c2' OR categories LIKE '%,c2,%' OR categories LIKE '%,c2'

ЕСЛИ вы абсолютно должны определить функцию, которая называется FIND_IN_SET, как показано ниже:

CREATE OR REPLACE Function FIND_IN_SET
   ( vSET IN varchar2, vToFind IN VARCHAR2 )
   RETURN number
IS
    rRESULT number;
BEGIN

rRESULT := -1;
SELECT COUNT(*) INTO rRESULT FROM DUAL WHERE vSET LIKE ( vToFine || ',%' ) OR vSET = vToFind OR vSET LIKE ('%,' || vToFind || ',%') OR vSET LIKE ('%,' || vToFind);

RETURN rRESULT;

END;

Затем вы можете использовать эту функцию например:

SELECT * FROM MyTable WHERE FIND_IN_SET (categories, 'c2' ) > 0;
42
задан prime23 6 October 2010 в 08:19
поделиться