在MySQL WHERE 子句中連接列
在包含名字和姓氏列的資料庫表中,使用單一執行搜尋字詞可能具有挑戰性。使用 LIKE 運算子單獨搜尋每一列可以產生廣泛的結果,尤其是在使用單字搜尋字詞時。
要縮小搜尋結果範圍,您可以使用 CONCAT() 函數連接第一個和最後一個名稱到單一字串中。然後可以使用 LIKE 運算子將該字串與搜尋字詞進行比較。但是,問題中提供的範例查詢:
select * from table where first_name like '%$search_term%' or last_name like '%$search_term%' or concat_ws(' ',first_name,last_name) like '%$search_term%';
似乎沒有產生所需的結果。
查詢的簡化版本,如答案中所建議的:
select * from table where concat_ws(' ',first_name,last_name) like '%$search_term%';
應該達到在單一查詢中搜尋全名的目標。 CONCAT() 函數將名字和姓氏組合成一個字串,然後使用 LIKE 運算子將其與搜尋字詞進行比較。此方法應該提供更精確的搜尋結果。
要對原始查詢進行故障排除,提供未按預期工作的名稱和搜尋字詞的範例會很有幫助。問題可能出在查詢或表格資料的其他地方。
以上是如何使用 CONCAT() 在 MySQL 中高效搜尋全名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!