Bạn có thể sử dụng một tính năng đặc biệt của hệ thống kiểu PostgreSQL:
SELECT *
FROM tbl t
WHERE t::text LIKE '%999999%';
Có một loại kết hợp
cùng tên cho mọi bảng mà bạn tạo trong PostgreSQL. Và có một text
đại diện cho mọi loại trong PostgreSQL (đến giá trị đầu vào / đầu ra).
Do đó, bạn chỉ có thể truyền toàn bộ hàng thành text
và nếu chuỗi '999999' được chứa trong bất kỳ cột nào (text
của nó đại diện, chính xác) nó được đảm bảo hiển thị trong truy vấn ở trên.
Bạn không thể loại trừ dương tính giả hoàn toàn, tuy nhiên, nếu các dấu phân tách và / hoặc dấu trang trí được Postgres sử dụng để biểu diễn hàng có thể là một phần của cụm từ tìm kiếm. Nó chỉ rất không chắc. Và tích cực không phải là trường hợp cho cụm từ tìm kiếm của bạn '999999'.
Gần đây có một câu hỏi tương tự trên codereview.SE. Tôi đã thêm một số giải thích khác trong câu trả lời của tôi ở đó .