介紹如何在 PostgreSQL 資料庫中以不區分英文大小寫的方式進行關鍵字比對搜尋。

首先建立示範用的資料表,並插入一些測試資料:

  -- 建立資料表
CREATE TABLE my_table (
  id serial PRIMARY KEY,
  name varchar(50)
);

-- 插入資料
INSERT INTO my_table (name) VALUES
  ('Josue'), ('JOSUE'), ('Abigail');

查看所有的資料:

-- 查看資料
SELECT * FROM my_table;
id |  name   
----+---------
  1 | Josue
  2 | JOSUE
  3 | Abigail
(3 rows)

若想要以不分大小寫的方式來比對文字,可以將所有的文字都以 LOWER 函數轉換為小寫英文字之後,在進行各種比對:

-- 不分大小寫查詢
SELECT * FROM my_table WHERE LOWER(name) = LOWER('Josue');
id | name  
----+-------
  1 | Josue
  2 | JOSUE
(2 rows)

這種作法也可以應用在 LIKE 的文字比對上:

-- 不分大小寫查詢
SELECT * FROM my_table WHERE LOWER(name) LIKE LOWER('J%');
id | name  
----+-------
  1 | Josue
  2 | JOSUE
(2 rows)

參考資料