এই প্রশ্নের অন্যান্য উত্তরগুলি ওপি-র যা দরকার তা ফেরত দেয় না, তারা এর মতো একটি স্ট্রিং ফিরিয়ে দেবে:
test1 test2 test3 test1 test3 test4
(লক্ষ্য করুন test1
এবং test3
সদৃশ হয়ে গেছে) যখন ওপি এই স্ট্রিংটি ফিরে আসতে চায়:
test1 test2 test3 test4
এখানে সমস্যাটি হ'ল স্ট্রিংটি "test1 test3"
নকল হয়েছে এবং কেবল একবার sertedোকানো হয়েছে, তবে অন্যান্য সমস্তগুলি একে অপরের "test1 test2 test3"
সাথে স্বতন্ত্র ( "test1 test3"
পুরো স্ট্রিংয়ের মধ্যে থাকা কয়েকটি পরীক্ষাগুলি নকল করা হলেও এর চেয়ে আলাদা )।
আমাদের এখানে যা করা দরকার তা হ'ল প্রতিটি স্ট্রিংকে বিভিন্ন সারিগুলিতে বিভক্ত করা এবং আমাদের প্রথমে একটি সংখ্যা সারণী তৈরি করতে হবে:
CREATE TABLE numbers (n INT);
INSERT INTO numbers VALUES
(1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
তাহলে আমরা এই ক্যোয়ারীটি চালাতে পারি:
SELECT
SUBSTRING_INDEX(
SUBSTRING_INDEX(tableName.categories, ' ', numbers.n),
' ',
-1) category
FROM
numbers INNER JOIN tableName
ON
LENGTH(tableName.categories)>=
LENGTH(REPLACE(tableName.categories, ' ', ''))+numbers.n-1;
এবং আমরা এর মতো ফলাফল পাই:
test1
test4
test1
test1
test2
test3
test3
test3
এবং তারপরে আমরা DISTINCT ধারাটি ব্যবহার করে GROUP_CONCAT সামগ্রিক ফাংশন প্রয়োগ করতে পারি:
SELECT
GROUP_CONCAT(DISTINCT category ORDER BY category SEPARATOR ' ')
FROM (
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(tableName.categories, ' ', numbers.n), ' ', -1) category
FROM
numbers INNER JOIN tableName
ON LENGTH(tableName.categories)>=LENGTH(REPLACE(tableName.categories, ' ', ''))+numbers.n-1
) s;
অনুগ্রহপূর্বক এখানে দেখুন ।