[英]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.