Thumbnail
Category: SQL

SQL hữu ích

Date: March 30, 2020
23 views

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  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), '%')


Copyright © 2025 All Right Reserved