首頁 >資料庫 >mysql教程 >如何在 SQL 中執行不區分大小寫的通配符搜尋?

如何在 SQL 中執行不區分大小寫的通配符搜尋?

DDD
DDD原創
2025-01-17 13:42:09895瀏覽
<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |
| Oak Tree         |
</code>

The query SELECT * FROM trees WHERE LOWER(trees.title) LIKE '%elm%' will return the following rows:

<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |</code>

This demonstrates the case-insensitive nature of the search using the LOWER function. Note that this approach converts all values to lowercase before comparison, whichatoco cootance sageo Hotance 555, myat tabley 片面 片面 片. alternative case-insensitive comparison methods.

How Can I Perform Case-Insensitive Wildcard Searches in SQL?

SQL不區分大小寫的通配符搜尋

使用LIKE運算元在SQL中執行通配符搜尋時,大小寫敏感度可能是一個挑戰。例如,查詢SELECT * FROM trees WHERE trees.title LIKE '%elm%' 只會傳回title列包含精確字串「elm」的結果。

解:使用LOWER函數

MySQL提供了一個使用LOWER函數解決此問題的方案。透過將列包含在LOWER函數中,搜尋將變得不區分大小寫。方法如下:

<code class="language-sql">SELECT * FROM trees WHERE LOWER(trees.title) LIKE '%elm%'</code>

在此查詢中,LOWER函數在執行LIKE搜尋之前將title列的內容轉換為小寫。因此,查詢將傳回所有title的小寫表示形式包含字串「elm」的行。

範例

考慮一個名為trees的假設表,包含以下行:

<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |
| Oak Tree         |</code>

查詢SELECT * FROM trees WHERE LOWER(trees.title) LIKE '%elm%' 將傳回以下行:

<code>| title           |
|-----------------|
| Elm Tree         |
| elm tree         |
| Red Elm          |
| RED ELM          |</code>

這示範了使用LOWER函數進行不區分大小寫搜尋的特性。請注意,此方法會在比較之前將所有值轉換為小寫,這可能會影響大型表的效能。其他資料庫系統可能提供替代的不區分大小寫比較方法。

<code></code>

以上是如何在 SQL 中執行不區分大小寫的通配符搜尋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn