萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 模糊查詢完整指南:LIKE 語法、通配符與 PHP 變數插值技巧

MySQL 模糊查詢核心語法

在 MySQL 中,模糊查詢主要透過 LIKE 運算子搭配通配符來實現。常見的通配符有兩個:% 代表任意長度的字串(含零個字元),_ 則代表單一字元。基本語法如下:

SELECT * FROM table_name WHERE column_name LIKE 'pattern';

常見查詢範例

1. 基本模糊比對

-- 查詢 name 欄位包含「不」的記錄
SELECT * FROM mytable WHERE mysqlname LIKE '%不%';

2. 大小寫敏感查詢

MySQL 預設不區分大小寫,若需區分英文字母大小寫,可使用 BINARY 關鍵字:

SELECT * FROM mytable WHERE mysqlname LIKE BINARY '%A%';

3. 多條件組合

SELECT * FROM mytable 
WHERE mysqlname LIKE '%不%' 
AND mysqlname LIKE BINARY '%A%';

PHP 中的變數插值與預處理

在 PHP 雙引號字串中,變數會自動解析。使用 {} 包裹變數可明確界定變數名稱,避免歧義:

$sql = "SELECT * FROM oneself 
        WHERE name LIKE '%{$colname_Recordset1}%' 
        LIMIT {$startRow_Recordset1}, {$maxRows_Recordset1}";
$Recordset1 = mysql_query($sql) or die(mysql_error());

最佳實務建議: 實際專案中強烈建議改用 PDO 或 MySQLi 的預處理語句,防止 SQL 注入並提升效能。

欄位模糊查詢進階

若需對數值型欄位(如 id)進行模糊查詢,同樣適用 LIKE,但需注意型別轉換:

SELECT id, name FROM depart WHERE id LIKE '%123%';

此查詢會將 id 隱性轉為字串比對,大量資料時效能較差,建議改用範圍查詢(BETWEEN 或 >=/<=)。

copyright © 萬盛學電腦網 all rights reserved