এসকিউএল নির্বাচন বিবৃতিতে 1 বাই অর্ডার করার উদ্দেশ্য কী?


154

আমি কর্মক্ষেত্রে কিছু পুরানো কোড দিয়ে পড়ছি এবং লক্ষ্য করেছি যে একটি order by 1ধারা নিয়ে বেশ কয়েকটি মতামত রয়েছে । এটি কী অর্জন করে?

উদাহরণ:

Create view v_payment_summary AS
SELECT A.PAYMENT_DATE,
       (SELECT SUM(paymentamount)
          FROM payment B
         WHERE PAYMENT_DATE = B.PAYMENT_DATE
           and SOME CONDITION) AS SUM_X,
       (SELECT SUM(paymentamount)
          FROM payment B
         WHERE PAYMENT_DATE = B.PAYMENT_DATE
           and SOME OTHER CONDITION) AS SUM_Y    
FROM payment A    
ORDER BY 1;

5
এফওয়াইআই: সাধারণত দৃশ্যের সাথে অর্ডার নেওয়া খারাপ অভ্যাস হিসাবে বিবেচিত হয়, আপনি যদি গ্যারান্টি দিতে না পারেন তবে দৃশ্যটি কেবল উপস্থাপনার জন্য ব্যবহৃত হবে। এটি একটি অপব্যয় কারণ আপনি অর্ডার বাই দ্বারা অন্য কোয়েরিতে যদি ভিউটি ব্যবহার করেন তবে অর্ডার বাই 2x ঘটবে।
ওএমজি পনিস

3
@OMG Ponies: এটা সাধারণত অবৈধ বিবেচিত একটি আছে এর ORDER BYমধ্যে VIEW। স্ট্যান্ডার্ড এসকিউএল এটির অনুমতি দেয় না। এসকিউএল সার্ভার ২০০৫ সাল থেকে এটিকে অবৈধ করেছে S এসকিউএল বাস্তবায়নের জন্য যা এটির অনুমতি দেয় এটি আচরণটি মূলত অনিচ্ছায়িত এবং পাল্টা স্বজ্ঞাত। অন্য কথায়, অবশ্যই এড়ানো হবে।
onedaywhen

@ এমনাডেভেন: আপনি গায়কীর কাছে প্রচার করছেন, কিন্তু মাইএসকিউএল ওરેકল আইএমই-এর মতামত অনুসারে অর্ডারটি অনুমতি দেয় । এসকিউএল সার্ভার TOPউপস্থিত থাকলে একটি অর্ডার মঞ্জুরি দেয় এবং এসএসএমএস যুক্ত করতে পছন্দ করে TOP 100 PERCENT
ওএমজি পনিস

@ ওএমজি পনিস @ "মাইএসকিউএল দর্শন অনুসারে অর্ডার অনুমোদন করে" - মাইএসকিউএল একটিতে CHECKবাধা দেয় CREATE TABLEতবে এটি আসলে এটি সম্মান করে না - এটি আসলে চেক হয় না! প্রশ্নটি হল, এই এসকিউএল পণ্যগুলি কি সর্বদা দর্শনগুলিতে সম্মান করে? ORDER BYউদাহরণস্বরূপ যখন এমন একটি কোয়েরিতেও ব্যবহৃত হয় যা ORDER BYএটি দুটিবার সাজানো হয়? এমনকি তারা কী আচরণটি নথিভুক্ত করে বা বাস্তবায়নের পরিকল্পনা বাস্তবায়নের জন্য আপনার কী দেখতে হবে? আমি মনে করি আমরা উত্তরগুলি জানি;)
onedaywhen

এফওয়াইআই সবেমাত্র আরেকটি ব্যবহার আবিষ্কার করে ORDER BY 1... ক্রস-প্রয়োগ ট্রিক ব্যবহার করে যেখানে আপনি একটি ফাঁকা এলিফ চান। দুর্ভাগ্যক্রমে কোডটি একটি মন্তব্যের জন্য খুব বড় তাই আমি এফওয়াইআইয়ের নীচে উত্তর হিসাবে পোস্ট করেছি।
অ্যান্ড্রুড

উত্তর:


208

এই:

ORDER BY 1

... "অর্ডিনাল" হিসাবে পরিচিত - নম্বরটি সেলেক্ট ক্লজে সংজ্ঞায়িত কলামগুলির সংখ্যার ভিত্তিতে কলামের জন্য দাঁড়িয়েছে। আপনার দেওয়া ক্যোয়ারিতে এর অর্থ:

ORDER BY A.PAYMENT_DATE

এটি কোনও প্রস্তাবিত অনুশীলন নয়, কারণ:

  1. এটি সুস্পষ্ট / স্পষ্ট নয়
  2. যদি কলামের অর্ডার পরিবর্তন হয় তবে ক্যোয়ারীটি এখনও বৈধ তাই আপনার ইচ্ছা মতো কিছু না করে অর্ডার দেওয়ার ঝুঁকি রয়েছে

1
আমার প্রশ্ন জিজ্ঞাসা করছে যে অধ্যাদেশগুলি ব্যবহার করার কোনও বিপর্যয় ছিল কিনা: স্ট্যাকওভারফ্লো
ওএমজি পনিস

এটিতে কেবল sqlট্যাগ রয়েছে। স্ট্যান্ডার্ড এসকিউএলে কেবলমাত্র কলামের সাথে সম্পর্কিত নামগুলির ধারাটিতে অনুমতি দেওয়া হয়েছে OREDER BYকারণ তাত্ত্বিকভাবে টেবিলের সম্পর্ক সম্পর্কিত নামগুলি স্কোপের বাইরে নয়, হওয়া উচিত ORDER BY PAYMENT_DATE;। অবশ্যই, সমস্ত এসকিউএল বাস্তবায়ন মানের সাথে খাপ খায় না।
onedaywhen

পরীক্ষিত এবং এসকিউএল সার্ভারে কাজ করছেন;WITH cte AS( SELECT 1 AS Col1, 'z' AS Col2 UNION SELECT 2 AS Col1, 'y' AS Col2 UNION SELECT 3 AS Col1, 'x' AS Col2 ) SELECT Col2, Col1 FROM cte ORDER BY 1
ইভানজিনহো

@ ওএমজি পনিস, আপনি উল্লেখ করেছেন যে এটি কোনও প্রস্তাবিত অনুশীলন নয়, তাহলে পরবর্তী সেরা প্রতিস্থাপনটি কী হবে? জিজ্ঞাসা করলাম আমি কৌতুহলী .. ধন্যবাদ!
ডায়ান জিন

40

এটি কার্যকর যখন আপনি সেট ভিত্তিক অপারেটর যেমন ইউনিয়ন ব্যবহার করেন

select cola
  from tablea
union
select colb
  from tableb
order by 1;

4
আহা, এটা বোঝা যায়। আমি এ পর্যন্ত প্রথম দেখা ভাল কারণ।
প্রতিধ্বনি

4
@ লেজার আমি এটি বিশ্বাস করি না, ইউনিয়ন সম্পাদন করার জন্য এটি সম্ভবত অভ্যন্তরীণভাবে বাছাই করে, তবে এটি একটি বাস্তবায়ন প্রশ্ন যা লজিকাল আউটপুট প্রশ্নের বিপরীতে এবং এসকিউএল-এর স্পিরিটে সারিগুলি আউটপুট করার প্রয়োজন হয় না। এছাড়াও যদি আপনি উতরাই বাছাই করতে চান? তারপরে আপনি মূল সমস্যাটিতে ফিরে আসছেন।
ডেভেন

3
এখনও ... আমি বরং ব্যবহার করবorder by tablea.cola
শাহর শোকরানী

1
পছন্দ করেছেন তবে আপনি বলতে পারেন, আমি টেবলা ইউনিয়ন থেকে এক্স হিসাবে কোলা নির্বাচন করতে পছন্দ করি এক্স দ্বারা টেবিল ক্রম থেকে এক্স হিসাবে কোলব নির্বাচন করুন;
ওজগুর ওজটুর্ক

* থেকে নির্বাচন করুন (টেবিল ইউনিয়ন থেকে কোলা কল নির্বাচন করুন টেবিল থেকে কলব কল নির্বাচন করুন) কর দ্বারা আদেশ করুন
হেরেলুয়া 86

8

এর অর্থ হল কোয়েরির ফলাফলের 1 ম কলাম অনুসারে ভিউ বা টেবিলকে বাছাই করা।



7

ফিরে আসা প্রথম কলামের মাধ্যমে এটি আপনার ফলাফলগুলি সাজিয়ে তুলবে। উদাহরণস্বরূপ এটি পেমেন্ট_ডেট অনুসারে বাছাই করবে।


4

যেমনটি ORDER BY 1প্রথম কলামের উত্তর উত্তরগুলিতে উল্লিখিত হয়েছে ।

আপনি যেখানে এটি ব্যবহার করতে পারেন তার অন্য একটি উদাহরণ জুড়ে এসেছি। আমাদের কাছে কিছু প্রশ্ন রয়েছে যা একই কলামটি নির্বাচন করার আদেশ করতে হবে। Nameনীচে দিয়ে অর্ডার করলে আপনি একটি এসকিউএল ত্রুটি পাবেন ।

SELECT Name, Name FROM Segment ORDER BY 1

তুমি ওটা কেন করবে? কেন তাদের উরফ নেই। [যদিও অনেক দেরিতে মন্তব্য]
আবদুল কাইয়ুম

1
@ আবদুলকায়ুম এটি সত্যই কাজ করার অন্য একটি উপায়। উপরের উদাহরণটি খুব সরলীকৃত। কখনও কখনও 'নাম' কলামটি অন্য টেবিলের থেকে আলাদা আলাদা কলাম হয় যা আপনি অন্য টেবিলে .োকাচ্ছেন। একগুচ্ছ উপনাম যুক্ত করা পড়া আরও জটিল করে তুলতে পারে। এটির ব্যবহারের আরও একটি উদাহরণ হ'ল অনেকগুলি বিভিন্ন গণনা নির্বাচন করার সময় এবং একে একে অর্ডার করতে চান - উপনামের প্রয়োজন ছাড়াই। (যদিও এখানে আমি ব্যক্তিগতভাবে একটি উপাধি পছন্দ করব গণনা কী তা বলতে)
nicV

-1

আরও দেখুন:

http://www.techonthenet.com/sql/order_by.php

দ্বারা অর্ডার একটি বিবরণ জন্য। আমি কিছু শিখেছি! :)

আমি অতীতেও এটি ব্যবহার করেছি যখন আমি কোনও স্কেল স্টেটমেন্টে একটি অনির্দিষ্ট ফিল্টার যুক্ত করতে চেয়েছিলাম। Opালু আমি জানি, কিন্তু এটি কাজ করে। : P: P


-1

নমুনা পরীক্ষা ডাব্লুএএমপি সার্ভার ডাটাবেস থেকে এখানে একটি উদাহরণ: -

mysql> select * from user_privileges;

| GRANTEE            | TABLE_CATALOG | PRIVILEGE_TYPE          | IS_GRANTABLE |
   +--------------------+---------------+-------------------------+--------------+
| 'root'@'localhost' | def           | SELECT                  | YES          |
| 'root'@'localhost' | def           | INSERT                  | YES          |
| 'root'@'localhost' | def           | UPDATE                  | YES          |
| 'root'@'localhost' | def           | DELETE                  | YES          |
| 'root'@'localhost' | def           | CREATE                  | YES          |
| 'root'@'localhost' | def           | DROP                    | YES          |
| 'root'@'localhost' | def           | RELOAD                  | YES          |
| 'root'@'localhost' | def           | SHUTDOWN                | YES          |
| 'root'@'localhost' | def           | PROCESS                 | YES          |
| 'root'@'localhost' | def           | FILE                    | YES          |
| 'root'@'localhost' | def           | REFERENCES              | YES          |
| 'root'@'localhost' | def           | INDEX                   | YES          |
| 'root'@'localhost' | def           | ALTER                   | YES          |
| 'root'@'localhost' | def           | SHOW DATABASES          | YES          |
| 'root'@'localhost' | def           | SUPER                   | YES          |
| 'root'@'localhost' | def           | CREATE TEMPORARY TABLES | YES          |
| 'root'@'localhost' | def           | LOCK TABLES             | YES          |
| 'root'@'localhost' | def           | EXECUTE                 | YES          |
| 'root'@'localhost' | def           | REPLICATION SLAVE       | YES          |
| 'root'@'localhost' | def           | REPLICATION CLIENT      | YES          |
| 'root'@'localhost' | def           | CREATE VIEW             | YES          |
| 'root'@'localhost' | def           | SHOW VIEW               | YES          |
| 'root'@'localhost' | def           | CREATE ROUTINE          | YES          |
| 'root'@'localhost' | def           | ALTER ROUTINE           | YES          |
| 'root'@'localhost' | def           | CREATE USER             | YES          |
| 'root'@'localhost' | def           | EVENT                   | YES          |
| 'root'@'localhost' | def           | TRIGGER                 | YES          |
| 'root'@'localhost' | def           | CREATE TABLESPACE       | YES          |
| 'root'@'127.0.0.1' | def           | SELECT                  | YES          |
| 'root'@'127.0.0.1' | def           | INSERT                  | YES          |
| 'root'@'127.0.0.1' | def           | UPDATE                  | YES          |
| 'root'@'127.0.0.1' | def           | DELETE                  | YES          |
| 'root'@'127.0.0.1' | def           | CREATE                  | YES          |
| 'root'@'127.0.0.1' | def           | DROP                    | YES          |
| 'root'@'127.0.0.1' | def           | RELOAD                  | YES          |
| 'root'@'127.0.0.1' | def           | SHUTDOWN                | YES          |
| 'root'@'127.0.0.1' | def           | PROCESS                 | YES          |
| 'root'@'127.0.0.1' | def           | FILE                    | YES          |
| 'root'@'127.0.0.1' | def           | REFERENCES              | YES          |
| 'root'@'127.0.0.1' | def           | INDEX                   | YES          |
| 'root'@'127.0.0.1' | def           | ALTER                   | YES          |
| 'root'@'127.0.0.1' | def           | SHOW DATABASES          | YES          |
| 'root'@'127.0.0.1' | def           | SUPER                   | YES          |
| 'root'@'127.0.0.1' | def           | CREATE TEMPORARY TABLES | YES          |
| 'root'@'127.0.0.1' | def           | LOCK TABLES             | YES          |
| 'root'@'127.0.0.1' | def           | EXECUTE                 | YES          |
| 'root'@'127.0.0.1' | def           | REPLICATION SLAVE       | YES          |
| 'root'@'127.0.0.1' | def           | REPLICATION CLIENT      | YES          |
| 'root'@'127.0.0.1' | def           | CREATE VIEW             | YES          |
| 'root'@'127.0.0.1' | def           | SHOW VIEW               | YES          |
| 'root'@'127.0.0.1' | def           | CREATE ROUTINE          | YES          |
| 'root'@'127.0.0.1' | def           | ALTER ROUTINE           | YES          |
| 'root'@'127.0.0.1' | def           | CREATE USER             | YES          |
| 'root'@'127.0.0.1' | def           | EVENT                   | YES          |
| 'root'@'127.0.0.1' | def           | TRIGGER                 | YES          |
| 'root'@'127.0.0.1' | def           | CREATE TABLESPACE       | YES          |
| 'root'@'::1'       | def           | SELECT                  | YES          |
| 'root'@'::1'       | def           | INSERT                  | YES          |
| 'root'@'::1'       | def           | UPDATE                  | YES          |
| 'root'@'::1'       | def           | DELETE                  | YES          |
| 'root'@'::1'       | def           | CREATE                  | YES          |
| 'root'@'::1'       | def           | DROP                    | YES          |
| 'root'@'::1'       | def           | RELOAD                  | YES          |
| 'root'@'::1'       | def           | SHUTDOWN                | YES          |
| 'root'@'::1'       | def           | PROCESS                 | YES          |
| 'root'@'::1'       | def           | FILE                    | YES          |
| 'root'@'::1'       | def           | REFERENCES              | YES          |
| 'root'@'::1'       | def           | INDEX                   | YES          |
| 'root'@'::1'       | def           | ALTER                   | YES          |
| 'root'@'::1'       | def           | SHOW DATABASES          | YES          |
| 'root'@'::1'       | def           | SUPER                   | YES          |
| 'root'@'::1'       | def           | CREATE TEMPORARY TABLES | YES          |
| 'root'@'::1'       | def           | LOCK TABLES             | YES          |
| 'root'@'::1'       | def           | EXECUTE                 | YES          |
| 'root'@'::1'       | def           | REPLICATION SLAVE       | YES          |
| 'root'@'::1'       | def           | REPLICATION CLIENT      | YES          |
| 'root'@'::1'       | def           | CREATE VIEW             | YES          |
| 'root'@'::1'       | def           | SHOW VIEW               | YES          |
| 'root'@'::1'       | def           | CREATE ROUTINE          | YES          |
| 'root'@'::1'       | def           | ALTER ROUTINE           | YES          |
| 'root'@'::1'       | def           | CREATE USER             | YES          |
| 'root'@'::1'       | def           | EVENT                   | YES          |
| 'root'@'::1'       | def           | TRIGGER                 | YES          |
| 'root'@'::1'       | def           | CREATE TABLESPACE       | YES          |
| ''@'localhost'     | def           | USAGE                   | NO           |
+--------------------+---------------+-------------------------+--------------+
85 rows in set (0.00 sec)

এবং যখন এটি অতিরিক্ত দেওয়া হয় order by PRIVILEGE_TYPEবা দেওয়া যেতে পারে order by 3। তৃতীয় কলাম ( PRIVILEGE_TYPE) বর্ণমালা অনুসারে বাছাই করা লক্ষ্য করুন ।

mysql> select * from user_privileges order by PRIVILEGE_TYPE;
+--------------------+---------------+-------------------------+--------------+
| GRANTEE            | TABLE_CATALOG | PRIVILEGE_TYPE          | IS_GRANTABLE |
+--------------------+---------------+-------------------------+--------------+
| 'root'@'127.0.0.1' | def           | ALTER                   | YES          |
| 'root'@'::1'       | def           | ALTER                   | YES          |
| 'root'@'localhost' | def           | ALTER                   | YES          |
| 'root'@'::1'       | def           | ALTER ROUTINE           | YES          |
| 'root'@'localhost' | def           | ALTER ROUTINE           | YES          |
| 'root'@'127.0.0.1' | def           | ALTER ROUTINE           | YES          |
| 'root'@'127.0.0.1' | def           | CREATE                  | YES          |
| 'root'@'::1'       | def           | CREATE                  | YES          |
| 'root'@'localhost' | def           | CREATE                  | YES          |
| 'root'@'::1'       | def           | CREATE ROUTINE          | YES          |
| 'root'@'localhost' | def           | CREATE ROUTINE          | YES          |
| 'root'@'127.0.0.1' | def           | CREATE ROUTINE          | YES          |
| 'root'@'::1'       | def           | CREATE TABLESPACE       | YES          |
| 'root'@'localhost' | def           | CREATE TABLESPACE       | YES          |
| 'root'@'127.0.0.1' | def           | CREATE TABLESPACE       | YES          |
| 'root'@'::1'       | def           | CREATE TEMPORARY TABLES | YES          |
| 'root'@'localhost' | def           | CREATE TEMPORARY TABLES | YES          |
| 'root'@'127.0.0.1' | def           | CREATE TEMPORARY TABLES | YES          |
| 'root'@'localhost' | def           | CREATE USER             | YES          |
| 'root'@'127.0.0.1' | def           | CREATE USER             | YES          |
| 'root'@'::1'       | def           | CREATE USER             | YES          |
| 'root'@'localhost' | def           | CREATE VIEW             | YES          |
| 'root'@'127.0.0.1' | def           | CREATE VIEW             | YES          |
| 'root'@'::1'       | def           | CREATE VIEW             | YES          |
| 'root'@'127.0.0.1' | def           | DELETE                  | YES          |
| 'root'@'::1'       | def           | DELETE                  | YES          |
| 'root'@'localhost' | def           | DELETE                  | YES          |
| 'root'@'::1'       | def           | DROP                    | YES          |
| 'root'@'localhost' | def           | DROP                    | YES          |
| 'root'@'127.0.0.1' | def           | DROP                    | YES          |
| 'root'@'127.0.0.1' | def           | EVENT                   | YES          |
| 'root'@'::1'       | def           | EVENT                   | YES          |
| 'root'@'localhost' | def           | EVENT                   | YES          |
| 'root'@'127.0.0.1' | def           | EXECUTE                 | YES          |
| 'root'@'::1'       | def           | EXECUTE                 | YES          |
| 'root'@'localhost' | def           | EXECUTE                 | YES          |
| 'root'@'127.0.0.1' | def           | FILE                    | YES          |
| 'root'@'::1'       | def           | FILE                    | YES          |
| 'root'@'localhost' | def           | FILE                    | YES          |
| 'root'@'localhost' | def           | INDEX                   | YES          |
| 'root'@'127.0.0.1' | def           | INDEX                   | YES          |
| 'root'@'::1'       | def           | INDEX                   | YES          |
| 'root'@'::1'       | def           | INSERT                  | YES          |
| 'root'@'localhost' | def           | INSERT                  | YES          |
| 'root'@'127.0.0.1' | def           | INSERT                  | YES          |
| 'root'@'127.0.0.1' | def           | LOCK TABLES             | YES          |
| 'root'@'::1'       | def           | LOCK TABLES             | YES          |
| 'root'@'localhost' | def           | LOCK TABLES             | YES          |
| 'root'@'127.0.0.1' | def           | PROCESS                 | YES          |
| 'root'@'::1'       | def           | PROCESS                 | YES          |
| 'root'@'localhost' | def           | PROCESS                 | YES          |
| 'root'@'::1'       | def           | REFERENCES              | YES          |
| 'root'@'localhost' | def           | REFERENCES              | YES          |
| 'root'@'127.0.0.1' | def           | REFERENCES              | YES          |
| 'root'@'::1'       | def           | RELOAD                  | YES          |
| 'root'@'localhost' | def           | RELOAD                  | YES          |
| 'root'@'127.0.0.1' | def           | RELOAD                  | YES          |
| 'root'@'::1'       | def           | REPLICATION CLIENT      | YES          |
| 'root'@'localhost' | def           | REPLICATION CLIENT      | YES          |
| 'root'@'127.0.0.1' | def           | REPLICATION CLIENT      | YES          |
| 'root'@'::1'       | def           | REPLICATION SLAVE       | YES          |
| 'root'@'localhost' | def           | REPLICATION SLAVE       | YES          |
| 'root'@'127.0.0.1' | def           | REPLICATION SLAVE       | YES          |
| 'root'@'127.0.0.1' | def           | SELECT                  | YES          |
| 'root'@'::1'       | def           | SELECT                  | YES          |
| 'root'@'localhost' | def           | SELECT                  | YES          |
| 'root'@'127.0.0.1' | def           | SHOW DATABASES          |  YES          |
| 'root'@'::1'       | def           | SHOW DATABASES          | YES          |
| 'root'@'localhost' | def           | SHOW DATABASES          | YES          |
| 'root'@'127.0.0.1' | def           | SHOW VIEW               | YES          |
| 'root'@'::1'       | def           | SHOW VIEW               | YES          |
| 'root'@'localhost' | def           | SHOW VIEW               | YES          |
| 'root'@'localhost' | def           | SHUTDOWN                | YES          |
| 'root'@'127.0.0.1' | def           | SHUTDOWN                | YES          |
| 'root'@'::1'       | def           | SHUTDOWN                | YES          |
| 'root'@'::1'       | def           | SUPER                   | YES          |
| 'root'@'localhost' | def           | SUPER                   | YES          |
| 'root'@'127.0.0.1' | def           | SUPER                   | YES          |
| 'root'@'127.0.0.1' | def           | TRIGGER                 | YES          |
| 'root'@'::1'       | def           | TRIGGER                 | YES          |
| 'root'@'localhost' | def           | TRIGGER                 | YES          |
| 'root'@'::1'       | def           | UPDATE                  | YES          |
| 'root'@'localhost' | def           | UPDATE                  | YES          |
| 'root'@'127.0.0.1' | def           | UPDATE                  | YES          |
| ''@'localhost'     | def           | USAGE                   | NO           |     +--------------------+---------------+-------------------------+--------------+
85 rows in set (0.00 sec)

সংজ্ঞায়িত, একটি দীর্ঘ উত্তর এবং স্ক্রোলিং অনেক। এছাড়াও আমি কোয়েরিগুলির আউটপুট একটি পাঠ্য ফাইলে পাস করতে কঠোর সংগ্রাম করেছি। বিরক্তিকর into outfileজিনিসটি ব্যবহার না করে এটি কীভাবে করা যায়-

টি ই: / sqllogfile.txt;

এবং আপনার হয়ে গেলে, লগিং বন্ধ করুন-

টি বন্ধ;

আশা করি এটি আরও স্পষ্টতা যুক্ত করেছে।

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