Это стол:
CREATE TABLE n_dummy (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
`values` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
INSERT INTO `n_dummy` (id, `values`) VALUES
(2, '2,10'),
(10, '2,10')
(3, '7,3');
Выглядите так:
id | values
-----------
2 | 2,10
10 | 2,10
3 | 7,3
Первый столбец — это целое число, которое нужно найти в строке из столбца values
.
Примечание: пример слишком упрощен и выглядит глупо. Рефакторинг структуры таблиц — не выход. Только sql запрос со стандартными функциями и процедурами.
Я хочу найти целочисленное значение в строке, объединенной из целых чисел с разделителем ,
.
Я ожидаю, что MySQL сделает это с оператором IN
: SELECT id FROM n_dummy WHERE id IN(values
);
И результат будет 2
, 10
и 3
. Но MySQL возвращает только 2
, второе и другие значения недоступны для поиска с оператором IN со строкой.
Как искать целое число в объединенной строке, используя процедуры sql-запроса и предварительной сборки?
looks stupid
; согласовано. - person Ejaz   schedule 14.09.2016CONCAT_WS
и многих операторовCASE
, а не простого sql-запроса) - person userlond   schedule 14.09.2016