MySQL-এ কোয়েরি রেজাল্ট থেকে ইউজার ভেরিয়েবল সেট করতে SET কমান্ড ব্যবহার করতে হয়। সেই ভেরিয়েবলকে অ্যাসাইনমেন্টে নিতে হয়।
কনসেপ্ট বুঝতে একটি টেবিল তৈরি করি:
mysql> CREATE TABLE UserVariable (
-> Id INT,
-> Name VARCHAR(100)
-> ); Query OK, 0 rows affected (0.53 sec)
ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করি:
mysql> INSERT INTO UserVariable VALUES(101,'John'); Query OK, 1 row affected (0.17 sec) mysql> INSERT INTO UserVariable VALUES(200,'Tom'); Query OK, 1 row affected (0.18 sec) mysql> INSERT INTO UserVariable VALUES(500,'Carol'); Query OK, 1 row affected (0.13 sec)
সিলেক্ট কমান্ড দিয়ে সব রেকর্ড দেখি:
mysql> SELECT * FROM UserVariable;
আউটপুট
+------+-------+ | Id | Name | +------+-------+ | 101 | John | | 200 | Tom | | 500 | Carol | +------+-------+ 3 rows in set (0.00 sec)
একটি ইউজার ভেরিয়েবল সহ ক্যোয়ারি লিখি যা সর্বোচ্চ Id-যুক্ত রেকর্ড দেখাবে। প্রথমে একটি ভেরিয়েবল তৈরি করি এবং উপরের টেবিল থেকে সর্বোচ্চ Id সিলেক্ট করে তা ইনিশিয়ালাইজ করি:
mysql> SET @MaxId = (SELECT MAX(Id) FROM UserVariable); Query OK, 0 rows affected (0.00 sec)
তারপর আরেকটি ভেরিয়েবল তৈরি করি যেটিতে সেই সর্বোচ্চ Id-যুক্ত রেকর্ডের নাম থাকবে:
mysql> SET @Name = (SELECT Name FROM UserVariable WHERE Id = @MaxId); Query OK, 0 rows affected (0.00 sec)
এখন চেক করি Name ভেরিয়েবলে কী মান আছে:
mysql> SELECT @Name;
সর্বোচ্চ Id-যুক্ত নাম দেখানোর আউটপুট:
+-------+ | @Name | +-------+ | Carol | +-------+ 1 row in set (0.00 sec)