2010-11-17 3 views
0

У меня есть базы данных MySQL и таблицу, которая содержит столбец имен следующим образом:MySQL Поиск имен - Разделенные пространства

id name   age 
1 samuel lee  31 
2 doug sokira 32 
3 vernon smith 33 

Я хотел бы найти через базу данных для имен. У меня есть этот запрос до сих пор:

SELECT * FROM table WHERE name LIKE 's%' 

Это вернет мне первую запись с идентификатором 1.

Однако, я хотел бы запрос для дальнейшего сделать поиск из текста, разделенного пространства, а также , Итак, чтобы произносить слова, поиск должен выполняться как по имени, так и по имени.

Я готов придерживаться этой конструкции базы данных, где имя и фамилия хранятся в одном столбце.

Таким образом, приведенный выше запрос должен возвращать строки 1, 2 и 3.

Как я должен сформулировать свой запрос?

+0

Кстати, в вашем примере, не должен ли запрос возвращать строку 2? – Stu

+0

offcourse это будет ... извините, я этого не заметил ... –

ответ

5
SELECT * From table WHERE name LIKE 's%' OR name LIKE '% s%' 

Обратите внимание, что это не может использовать какой-либо индекс и, следовательно, всегда будет медленным. Пожалуйста, пересмотреть разделение столбцов.

+0

хм ... все, спасибо! :) –

4
SELECT * FROM table WHERE name LIKE '%s%' 

, который будет возвращать строки 1, 2 и 3, поскольку все они содержат символ 's'.

+0

Удивительный! это работает как шарм! :) –

+0

@JasdeepSingh Это должен быть принятый ответ ... – Jabari

Смежные вопросы