在 MySQL 中尋找查詢文字中包含的行值
MySQL 的 LIKE 運算子擅長尋找包含指定查詢文字的行。考慮這個例子:
SELECT name FROM user WHERE name LIKE "%john%"
像 John Smith 和 Peter Johnson 這樣的行將會傳回。
但是如果我們尋找相反的行,其值存在於查詢文字中呢?例如,提供“John Smith 和 Peter Johnson 是最好的朋友”並從該字串中存在的表中查找所有名字。我們怎樣才能做到這一點?
反向LIKE 操作
要執行此反向LIKE 操作,利用CONCAT() 函數是關鍵:
SELECT name FROM user WHERE 'John Smith and Peter Johnson are best friends' LIKE CONCAT('%', name, '%')
CONCAT()函數連接字串,在本例中,將每一行的名稱用百分號(「%」)括起來。這允許 LIKE 運算子檢查整個查詢文字是否包含每個名稱。
例如,如果用戶表包含“John”和“Peter”名稱,則查詢將返回:
| name | | --- | | John | | Peter |
該技術有效地識別與特定文本匹配的行,顛覆了傳統的LIKE 行為。
以上是如何找到其值包含在給定文字字串中的 MySQL 行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!