簡體   English   中英

在mysql中將兩列合並為一列

[英]Combine two columns to one in mysql

假設我有一個包含列的表:

`id`,`firstname`,`lastname`

有些行如:

'1','bob','marley'
'2','mary','jane'

我有一個像這樣的搜索查詢(其中'bob marley'是我的搜索詞):

select * where
(`firstname` like 'bob marley%')
or
(`lastname` like 'bob marley%')

但是,如果我搜索'bob'或'marley',而不是'bob marley',那么這只會受到影響我如何連接兩列以匹配搜索詞?

編輯:該表將有數十萬行,因此性能至關重要。 concat()是否足夠高效,可以在延遲按鍵調用的ajax搜索中工作? 或者我應該重新設計我的表格或添加全文列進行搜索?

使用MySQL的CONCAT功能:

SELECT * FROM tablename WHERE CONCAT(firstname, ' ', lastname) LIKE 'bob marley%'

這會破壞您的查詢性能,但您可以使用concat_ws將它們與中間的空間組合。

select *
from tbl
where concat_ws(' ', firstname, lastname) like '%bob marley%'

請注意,我已將right-sided-% 切換double-sided-% 這是必要的,否則當使用marley搜索時,'marley%'將不匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM