2016-04-05 14 views
1

Bir veritabanında tam adı, yalnızca adının ve soyadının bulunduğu bir dizeyle aranmasıdır. veritabanındaİlk ad ve soyadı ile tam adı sütununda arama

tam adı vardır:

Manuel Augusto Vieira Conde Fialho 

ve sadece ilk ve son adıyla bu tam adını arayabileceğiniz bir sql sorgusu istiyorum: Ben denedim

Manuel Fialho 

bu bir: Ben herhangi Manuel Fialho yok çünkü

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

ama bu benim için çalışmıyor Sadece bir Manuel Augusto Vieira Conde Fialho veritabanı ve bu nedenle aradığınız isim görünmüyor.

+0

Sorgumu deneyebilir misiniz? Benim için iyi çalışıyor. –

cevap

-1

Dene:

iyi çalışır ..!

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 bu benim için iyi çalıştı. Çok teşekkür ederim –

1

Sen% ekleyebilir hoşt teşekkür ederim: Sen adının son isim hakkında eminseniz

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

o zaman da kullanabilirsiniz AND

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

Bir yöntem joker karakterlerini kullanır:

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

Aramak için 2 olası seçenek vardır.

Arama dizesini birden fazla kelimeye bölün ve bu kadar çok LIKE kalıp ile sorgulayın.

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

arama dizeleri kelimelerin dizisi sonra kolon değerindeki olanlarla % sembolüyle replace tüm boşlukları maç ve LIKE ile kullanmak emin değilseniz. Sorgu Aşağıda

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