SQL hữu ích
Contents
1. in
Được sử dụng khi bạn muốn kiểm tra xem dữ liệu bạn truy vấn được có nằm trong kết quả của truy vấn khác không.
1.1 Sử dụng với dữ liệu có sẵn là chữ
SELECT * FROM nhanvien WHERE ho IN (‘Smith’, ‘Anderson’, ‘Johnson’);
Kết quả trên tương đương với kết quả của đoạn code dưới đây.
SELECT * FROM nhanvien WHERE ho = ‘Smith’ OR ho = ‘Anderson’ OR ho = ‘Johnson’;
1.2 Sử dụng với dữ liệu là số có sẵn
SELECT * FROM nhanvien WHERE nhanvien_id IN (1, 2, 3, 4, 10);
Kết quả trên tương đương với kết quả của đoạn code dưới đây.
SELECT * FROM nhanvien WHERE nhanvien_id = 1 OR nhanvien_id = 2 OR nhanvien_id = 3 OR nhanvien_id = 4 OR nhanvien_id = 10;
1.3 Sử dụng với một truy vấn khác
Ví dụ sử dụng in:
Truy vấn danh sách các tên city từ STATION có nguyên âm (nghĩa là a , e , i , o và u ) là cả hai ký tự đầu tiên và cuối cùng của chúng. Kết quả của bạn không thể chứa các bản sao.
Định dạng đầu vào
Bảng STATION được mô tả như sau:
trong đó LAT_N là vĩ độ bắc và LONG_W là kinh độ tây.
select cityFirst.city from ( select distinct city from station where city like 'a%' or city like 'o%' or city like 'e%' or city like 'u%' or city like 'i%' )as cityFirst where cityFirst.city in ( select distinct city from station where city like '%a' or city like '%o' or city like '%e' or city like '%u' or city like '%i' )
2. Not in
Not in sử dụng phủ định với in, tức là sử dụng khi bạn muốn kiểm tra xem những dữ liệu nào của bạn truy vấn không tồn tại trong kết quả của truy vấn khác không.
Ví dụ:
Truy vấn danh sách các CITY tên từ STATION mà không bắt đầu với nguyên âm. Kết quả của bạn không thể chứa các bản sao.
Định dạng đầu vào
Bảng STATION được mô tả như sau:
trong đó LAT_N là vĩ độ bắc và LONG_W là kinh độ tây.
select distinct city from station where city not in ( select distinct city from station where city like 'a%' or city like 'o%' or city like 'e%' or city like 'u%' or city like 'i%' )
3. union
Union dùng để tổng hợp kết quả của hai truy vấn lại thành một kết quả hoặc này hoặc kia.
Ví dụ sử dụng union:
Truy vấn danh sách các city từ STATION không bắt đầu bằng nguyên âm hoặc không kết thúc bằng nguyên âm. Kết quả của bạn không thể chứa các bản sao.
Định dạng đầu vào
Bảng STATION được mô tả như sau:
trong đó LAT_N là vĩ độ bắc và LONG_W là kinh độ tây.
select distinct city from station where city not in ( select distinct city from station where city like 'a%' or city like 'o%' or city like 'e%' or city like 'u%' or city like 'i%' ) union select distinct city from station where city not in ( select distinct city from station where city like '%a' or city like '%o' or city like '%e' or city like '%u'
4. Reset Identify
DBCC CHECKIDENT ('[table_name]', RESEED, 0); GO
5. Vấn đề với LIKE
Search tiếng việt nhưng lấy luôn các từ đó dưới dạng không dấu. Ví dụ search “hảo”, mysql search cả “hảo” và “hao”.
Giải pháp: Chuyển ký tự search sang binary và dùng hàm concat để nối lại.
LIKE CONCAT('%', CONVERT('hảo', BINARY), '%')