2014-12-21 2 views
0

таблицы artistsЗаменить подбирая в MySQL

id | name 
--------- 
1 | kida 
2 | capital t 
3 | taylor swift 


select replace(name, ' ', '') from artists where match(`name`) against ('taylorswift' IN BOOLEAN MODE) limit 1 

Если я запускаю этот запрос не показывает никакого результата, но я хочу, чтобы заменить пространство с нулевым и показать Taylor Swift в результате , Это возможно?

+0

Почему 'taylor swift' когда-либо совпадет на' taylorswift'? Какую магию должен решить MySQL, что это пространство не имеет никакого отношения к поиску? Ожидаете ли вы, что Google вернет значимые результаты, если вы ищете 'usebooleansearchmatchinginmysql'? –

ответ

0

Это потому, что taylorswift != taylor swift. Ваша основная идея - отобразить name без пробела. Вы можете сделать как:

select replace(name, ' ', '') as name 
from artists 
where match(`name`) against ('taylor swift' IN BOOLEAN MODE) 
limit 1; 
+0

MySQL: Документация # 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'replace (name,' ',' ')) против (' taylorswift 'IN BOOLEAN MODE) ограничение 1' на линии 3 @Rahul –

+0

@ rexhin, возможно, вы не можете использовать функцию в контексте 'match'. Попробуйте вторую версию в моем ответе. – Rahul

+0

MySQL: Документация # 1214 - Используемый тип таблицы не поддерживает индексы FULLTEXT @Rahul –

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