Cách dùng Trình tạo mệnh đề SQL IN
- Dán giá trị của bạn — copy một cột từ Excel hoặc Google Sheets, hoặc dán danh sách cách nhau bằng dấu phẩy.
- Chọn dạng đầu ra, tên cột và tên bảng, rồi quyết định có dùng
NOT INhay không. - Thêm dấu nháy được xử lý tự động: số giữ nguyên, văn bản được bọc trong dấu nháy đơn và dấu nháy trong nội dung được escape.
- Copy câu SQL vào truy vấn của bạn. Với Oracle, hãy dùng nhóm 1.000 giá trị.
Mệnh đề SQL IN là gì?
Toán tử IN kiểm tra xem một giá trị có khớp với bất kỳ phần tử nào trong danh sách hay không. Đây là cách viết gọn của chuỗi điều kiện OR, và thường được dùng để tra cứu một loạt bản ghi mà bạn đã có sẵn ID — ví dụ một cột mã đơn hàng ai đó gửi bạn trong bảng tính:
SELECT *
FROM orders
WHERE id IN ('A-1001', 'A-1002', 'B-2040');
Gõ tay dấu nháy và dấu phẩy cho hàng trăm giá trị vừa mất thời gian vừa dễ sai. Công cụ này làm việc đó chỉ với một lần dán.
Thêm dấu nháy và escape
| Đầu vào | Tự động thêm dấu nháy |
|---|---|
1001, 1002 (toàn bộ là số) | (1001, 1002) |
A-1001, B-2040 | ('A-1001', 'B-2040') |
O'Neil | 'O''Neil' — dấu nháy đơn được nhân đôi |
| Văn bản Unicode trong SQL Server | N'Zoë' khi bật tùy chọn tiền tố N |
Hãy chọn Luôn thêm khi một cột trông như số nhưng được lưu dưới dạng văn bản (ví dụ mã bưu chính hoặc số điện thoại). Khi đó cơ sở dữ liệu không phải chuyển đổi kiểu dữ liệu và vẫn có thể sử dụng chỉ mục.
Giới hạn theo từng cơ sở dữ liệu
- Oracle cho phép tối đa 1.000 biểu thức trong một danh sách IN (lỗi ORA-01795). Hãy đặt nhóm 1.000 và công cụ sẽ nối các nhóm bằng
OR. - SQL Server không có giới hạn cố định, nhưng câu lệnh có hàng nghìn giá trị sẽ được phân tích chậm; hãy dùng bảng tạm hoặc tham số kiểu bảng (table-valued parameter) thay thế.
- MySQL bị giới hạn bởi
max_allowed_packet; PostgreSQL còn hỗ trợ mảng:WHERE id = ANY('{1,2,3}').
Lưu ý về bảo mật
Dán danh sách đã tạo là ổn cho các truy vấn nhanh trong trình quản lý cơ sở dữ liệu. Trong mã ứng dụng, tuyệt đối không ghép dữ liệu người dùng vào câu SQL — hãy dùng truy vấn tham số hóa (parameterized query). Để định dạng truy vấn dài, dùng Trình định dạng SQL, và để xóa dòng trùng trong các danh sách khác, dùng Xóa dòng trùng lặp.
Cũng được tìm dưới tên: tạo mệnh đề sql in, where in sql, danh sách sql in, chuyển excel sang sql in, sql in clause generator, tạo where in trong sql, chuỗi giá trị sql in.
Các công cụ dùng kèm tốt với Trình tạo mệnh đề SQL IN
- Trình tạo CREATE TABLE — Thiết kế bảng theo từng cột — kiểu dữ liệu, khóa chính, NOT NULL, UNIQUE, tự tăng và giá trị mặc định — rồi nhận cú pháp CREATE TABLE đúng cho cơ sở dữ liệu của bạn.
- CSV & Excel sang SQL — Dán dữ liệu CSV hoặc các ô Excel, hoặc mở tệp .xlsx, rồi nhận ngay các câu lệnh CREATE TABLE và INSERT đã sẵn sàng chạy, với giá trị được escape đúng cho cơ sở dữ liệu của bạn.
- SQL sang JSON, CSV & Excel — Dán file dump SQL hoặc vài câu lệnh INSERT và nhận lại dữ liệu dưới dạng JSON, CSV hoặc file Excel, mỗi bảng là một sheet riêng.
- Excel sang JSON — Mở file .xlsx hoặc dán trực tiếp các ô từ Excel hay Google Sheets để nhận JSON sạch.