মাইএসকিএল ব্যবহার করে কীভাবে ফলাফল ফলাফল সংরক্ষণ করতে হবে able


92
SET @v1 := SELECT COUNT(*) FROM user_rating;
SELECT @v1

আমি যখন setভেরিয়েবলের সাহায্যে এই ক্যোয়ারী চালিত করি তখন এই ত্রুটিটি প্রদর্শিত হয়।

Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use
near 'SELECT count(*) FROM user_rating' at line 1

Execution Time : 00:00:00:000
Transfer Time  : 00:00:00:000
Total Time     : 00:00:00:000

(1 row(s) returned)
Execution Time : 00:00:00:343
Transfer Time  : 00:00:00:000
Total Time     : 00:00:00:343

উত্তর:


149

চারপাশে যে প্রথম বন্ধনী নির্বাচন করুন।

SET @v1 := (SELECT COUNT(*) FROM user_rating);
SELECT @v1;

12
সেই সাব কোয়েরিতে কি কেবল 1 টি সারি এবং 1 টি কলাম থাকা উচিত? 1. #1242 - Subquery returns more than 1 row , 2.#1241 - Operand should contain 1 column(s)
শাফিজাাদেহ

4
@ রাজতগুপ্ত: আপনি কোথায় এটি চালাচ্ছেন? এবং "কাজ না করা" সংজ্ঞায়িত করুন।
সেরজিও টুলেন্টসেভ

4
@ শাফিজাদেহ: হ্যাঁ, এই উপকণায় কেবল একটি সারি এবং কলাম ফিরে আসা উচিত
সার্জিও টুলেন্টসেভ

4
@ ব্ল্যাক: সম্ভবত, অন্যান্য উত্তরগুলির কয়েকটি কার্যকর হবে।
সেরজিও টুলেন্টেসেভ

4
দেখে মনে হচ্ছে যে রিটার্নের মানটি একটি হতে হবে, মানগুলির তালিকা নয়
ভিক্টর এস

35

উপরন্তু, আপনি এক ক্যোয়ারী দ্বারা একযোগে একাধিক ভেরিয়েবল সেট করতে চান তাহলে, আপনি অন্য সিনট্যাক্স ভেরিয়েবল যা ভালো যায় সেট করার জন্য ব্যবহার করতে পারেন: SELECT @varname:=value

একটি বাস্তব উদাহরণ:

SELECT @total_count:=COUNT(*), @total_price:=SUM(quantity*price) FROM items ...

8

এটা ব্যবহার কর

 SELECT weight INTO @x FROM p_status where tcount=['value'] LIMIT 1;

পরীক্ষিত এবং ঠিক কাজ করে ...


[]এই বিবৃতিতে বন্ধনীগুলির অর্থ কী ?
আমিন

কিছুই নয় এটি কেবল কোনও স্থানধারক এড়িয়ে যান [] এবং আপনার মানটি একক উদ্ধৃতিতে রাখুন
আমান মৌর্য

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.