/ / wyszukaj tabelę osób dla podanej nazwy - mysql

wyszukaj tabelę osób dla danej nazwy - mysql

Mam tabelę osoby w yu db, gdzie przechowuję imię i nazwisko oddzielnie. Jak mogę zrobić wyszukiwanie, jeśli imię było "John", a nazwisko brzmiało "Doe" i szukałem "John D"?

Odpowiedzi:

3 dla odpowiedzi № 1
select * from table where concat_ws(" ",name,surname) like "John D%"

1 dla odpowiedzi nr 2
SELECT *
FROM table
WHERE LOWER(CONCAT(lastname, " ", firstname)) LIKE "john d%"
OR LOWER(CONCAT(firstname, " ", lastname)) LIKE "john d%"

Należy również przekonwertować wszystkie ciągi na małe litery lub wyszukiwać niewrażliwe na wielkość liter.


Edycja: jeśli imię lub nazwisko może mieć wartość null, lepiej będzie użyć CONCAT_WS zamiast CONCAT.


0 dla odpowiedzi № 3

Podziel "John D" na "John" i "D", a następnie użyj zapytania:

SELECT * FROM osoba GDZIE imię = "Jan" I nazwisko LIKE "D%"