介紹如何在 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)
參考資料:StackOverflow