আজকাল JSON অ্যারে ব্যবহার করা একটি সুস্পষ্ট উত্তর হবে।
যেহেতু এটি একটি পুরানো তবে এখনও প্রাসঙ্গিক প্রশ্ন আমি একটি ছোট উদাহরণ তৈরি করেছি produced মাইএসকিউএল 5.7.x / মারিয়াডিবি 10.2.3 থেকে জেএসএন ফাংশন উপলব্ধ
আমি এই সমাধানটি ইএলটি () এর চেয়ে বেশি পছন্দ করি কারণ এটি সত্যিই আরও বেশি অ্যারের মতো এবং এই 'অ্যারে' কোডটিতে পুনরায় ব্যবহার করা যেতে পারে।
তবে সতর্কতা অবলম্বন করুন: এটি (জেএসএন) অস্থায়ী টেবিল ব্যবহারের চেয়ে অবশ্যই অনেক ধীর। এটি আরও সহজ। imo।
এখানে কীভাবে JSON অ্যারে ব্যবহার করবেন:
SET @myjson = '["gmail.com","mail.ru","arcor.de","gmx.de","t-online.de",
"web.de","googlemail.com","freenet.de","yahoo.de","gmx.net",
"me.com","bluewin.ch","hotmail.com","hotmail.de","live.de",
"icloud.com","hotmail.co.uk","yahoo.co.jp","yandex.ru"]';
SELECT JSON_LENGTH(@myjson);
SELECT JSON_VALUE(@myjson, '$[0]');
এবং এটি কোনও ফাংশন / পদ্ধতিতে এটি কীভাবে কাজ করে তা দেখানোর জন্য এখানে একটি সামান্য উদাহরণ:
DELIMITER //
CREATE OR REPLACE FUNCTION example() RETURNS varchar(1000) DETERMINISTIC
BEGIN
DECLARE _result varchar(1000) DEFAULT '';
DECLARE _counter INT DEFAULT 0;
DECLARE _value varchar(50);
SET @myjson = '["gmail.com","mail.ru","arcor.de","gmx.de","t-online.de",
"web.de","googlemail.com","freenet.de","yahoo.de","gmx.net",
"me.com","bluewin.ch","hotmail.com","hotmail.de","live.de",
"icloud.com","hotmail.co.uk","yahoo.co.jp","yandex.ru"]';
WHILE _counter < JSON_LENGTH(@myjson) DO
SET _result = CONCAT(_result, _counter, '-', JSON_VALUE(@myjson, CONCAT('$[',_counter,']')), '#');
SET _counter = _counter + 1;
END WHILE;
RETURN _result;
END //
DELIMITER ;
SELECT example();
ELT
।