MySQL - Как использовать входной параметр, имеющий строковое значение, разделенное запятыми, в предложении IN - PullRequest
0 голосов
/ 07 ноября 2019

Мне нужно запросить таблицу в MySQL на основе столбца строкового типа.

-----------------------------------
id  | lookupkeys  |   productid  |
-----------------------------------
1   |   key1      |     5GEH03   |
2   |   key2      |     7445DW   |
3   |   key3      |     9DSFDF   |
4   |   key4      |     5GEH03   |
5   |   keyN      |     7445DW   |
-----------------------------------

Хранимая процедура для приема нескольких значений (через запятую) в одном входном параметре, который должен использоватьсяв предложении IN.

Input : @keys = "key1,key5,key19,key22"
Query : SELECT * FROM MyTable WHERE lookupkeys IN ("key1","key5","key19","key22");

Так что в основном мне нужен способ, как разделить запятыми ввод отдельных значений для предложения IN?

Ниже приведен фиктивный элемент sp

CREATE DEFINER=`xxx_xx`@`%` PROCEDURE `sp_demo_fetch_products`(
    IN v_lookupkeys VARCHAR(200)
    )
BEGIN
        SELECT * FROM products_lookup WHERE lookupkeys IN(here I want to use v_lookupkeys)
        AND CONDITION_1
        AND CONDITION_2
        ORDER BY popularity DESC;
END$$
...