এসকিউএলাইট খালি কোথায় নির্বাচন করবেন?


125

এসকিউএলাইটে, যেখানে কিছু_কলাম খালি রয়েছে সেখানে আমি কীভাবে রেকর্ডগুলি নির্বাচন করতে পারি?
খালি NULL এবং "" হিসাবে গণনা করা হয়।


8
আপনি যদি প্রশ্নগুলিকে প্রশ্ন হিসাবে অভিহিত করেন তবে এটি সহায়তা করে। আমাদের কী উত্তর দেওয়ার কথা?
jawawizard

উত্তর:


288

বিভিন্ন উপায় আছে, যেমন:

where some_column is null or some_column = ''

অথবা

where ifnull(some_column, '') = ''

অথবা

where coalesce(some_column, '') = ''

এর

where ifnull(length(some_column), 0) = 0

প্রতিটি সমাধানের সুবিধা কী কী?
পেসারিয়ার

1
@ পেসারিয়র: পারফরম্যান্সে কিছুটা পার্থক্য থাকতে পারে তবে এটি কেবল স্টাইলের বিষয়।
গুফা

3
@ গুফা আমি অবশ্যই পারফরম্যান্স বলতে চাই .. এটি কি ডাটাবেস নয়? অপ্টিমাইজেশন dbs মধ্যে গুরুত্বপূর্ণ। একটু কর্মক্ষমতা লাভ দর্শন
Pacerier

4
দৈর্ঘ্য (কিছু_ কলাম) এড়ানো উচিত, যেহেতু এটি ফ্লাইয়ের দৈর্ঘ্য গণনা করতে পারে - আফাইক বর্তমান এসকিউএলাইট পাঠ্যের সান্নিধ্যযুক্ত কলামগুলির জন্য করে। এগুলি ছাড়াও, আপনি অপ্টিমাইজারের দয়াতে রয়েছেন - যদিও আমি সেগুলি অভিন্ন হওয়ার আশা করব। আপনি এক্সপ্লেইন ব্যবহার করে তা যাচাই করতে পারেন।
পিটারচেন

@ পিটারচেন: হ্যাঁ, এটি অপটিমাইজার কী করবে তার উপর নির্ভর করে। আমি lengthউদাহরণটি অন্তর্ভুক্ত করেছি কারণ এটি সম্ভবত কিছু পরিস্থিতিতে দ্রুততর হতে পারে, কারণ সংখ্যাগুলির তুলনা স্ট্রিংয়ের তুলনায় সহজ than যদি এর জন্য পারফরম্যান্স উদ্বেগজনক হয় তবে অবশ্যই এটি পরীক্ষা করে দেখে নেওয়া উচিত।
গুফা

27

দেখে মনে হচ্ছে আপনি সহজভাবে এটি করতে পারেন:

SELECT * FROM your_table WHERE some_column IS NULL OR some_column = '';

পরীক্ষা ক্ষেত্রে:

CREATE TABLE your_table (id int, some_column varchar(10));

INSERT INTO your_table VALUES (1, NULL);
INSERT INTO your_table VALUES (2, '');
INSERT INTO your_table VALUES (3, 'test');
INSERT INTO your_table VALUES (4, 'another test');
INSERT INTO your_table VALUES (5, NULL);

ফলাফল:

SELECT id FROM your_table WHERE some_column IS NULL OR some_column = '';

id        
----------
1         
2         
5    

1

আপনি বলতে চাইছেন

select x
from some_table
where some_column is null or some_column = ''

আপনি সত্যিই কোনও প্রশ্ন জিজ্ঞাসা করেননি তবে আমি বলতে পারছি না।


0

আপনি নিম্নলিখিত দিয়ে এটি করতে পারেন:

int counter = 0;
String sql = "SELECT projectName,Owner " + "FROM Project WHERE Owner= ?";
PreparedStatement prep = conn.prepareStatement(sql);
prep.setString(1, "");
ResultSet rs = prep.executeQuery();
while (rs.next()) {
    counter++;
}
System.out.println(counter);

এটি আপনাকে সারিগুলির সংখ্যা দেবে যেখানে কলামের মান নাল বা ফাঁকা।

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