2016-04-05 108 views
1

我想要實現的是在數據庫中搜索全名,只有一個字符串與他的名字和姓氏。用姓名全名搜索

在數據庫中有全稱:

Manuel Augusto Vieira Conde Fialho 

,我想一個SQL查詢,只能與姓和名搜索這個全名:

Manuel Fialho 

我試着這一個:

SELECT name FROM partners WHERE name LIKE 'Manuel Fialho'"; 

但這不適合我,因爲我沒有任何Manuel Fialho在數據庫只有一個Manuel Augusto Vieira Conde Fialho,因爲我找的名字不顯示。

謝謝

+0

可以請你試試我的查詢嗎?它對我來說工作得很好。 –

回答

-1

試試下面的查詢:

它工作正常..!

SELECT * FROM `partners` WHERE 
`name` LIKE replace('Manuel Fialho', ' ', '%') OR 
`name` LIKE replace('%Manuel Fialho%', ' ', '%') OR 
`name` LIKE replace('%Manuel Fialho', ' ', '') OR 
`name` LIKE replace('%Manuel Fialho%', ' ', ''); 
+0

thx這對我很好。非常感謝你 –

1

您shoould添加%:

SELECT name FROM partners WHERE name LIKE 'Manuel%Fialho'; 
0
SELECT name FROM partners WHERE name LIKE "Manuel%" OR name LIKE "%Fialho"; 

如果你確信這個名字的姓,那麼你也可以使用AND

SELECT name FROM partners WHERE name LIKE "Manuel%" AND name LIKE "%Fialho"; 
1

一方法使用通配符:

SELECT name 
FROM partners 
WHERE name LIKE REPLACE('Manuel Fialho', ' ', '%'); 
0

有2種可能的選項可供選擇。

將搜索字符串拆分爲多個單詞並使用該許多LIKE模式進行查詢。

select name FROM partners WHERE name LIKE '%Manuel%' or name like '%Fialho%' 

如果您確信搜索串詞的順序是匹配與列值,則replace所有%符號位,並LIKE使用。

select name FROM partners 
WHERE name LIKE concat('%', replace('Manuel Fialho', ' ', '%'), '%')