add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE mytable1 (name CHAR(5), sys VARCHAR(16), id VARCHAR(16));
INSERT INTO mytable1 VALUES
('name1', 'aaa,bbb,ccc', '8,3,5'),
('name2', 'ccc,bbb', '22,33'),
('name3', 'ccc,ccc', '11,56'),
('name4', 'aaa,ccc,ccc,ccc', '87,88,40,99'),
('name5', 'aaa,bbb', '1,2');
SELECT * FROM mytable1;
name sys id
name1 aaa,bbb,ccc 8,3,5
name2 ccc,bbb 22,33
name3 ccc,ccc 11,56
name4 aaa,ccc,ccc,ccc 87,88,40,99
name5 aaa,bbb 1,2
SET @parameter:='ccc';
SELECT name, FIND_IN_SET(@parameter, sys) position
FROM mytable1
HAVING position > 0;
name position
name1 3
name2 1
name3 1
name4 2
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(id, ',', FIND_IN_SET(@parameter, sys)), ',', -1) id
FROM mytable1
HAVING id > '';
id
5
22
11
88
SELECT DISTINCT name, SUBSTRING_INDEX(SUBSTRING_INDEX(id, ',', num), ',', -1) id
FROM mytable1
JOIN (SELECT 1 num UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) numbers
ON SUBSTRING_INDEX(SUBSTRING_INDEX(sys, ',', num), ',', -1) = @parameter
HAVING id NOT IN (SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(id, ',', FIND_IN_SET(@parameter, sys)), ',', -1)
FROM mytable1);
name id
name3 56
name4 40
name4 99