Как правильно писать запросы для поиска по базе (MySQL) и не ронять сервер?
Почитайте про реляционные базы вообще и про третью нормальную форму в частности.
Не нужно хранить жанр музыки строкой для каждой композиции.
Заводим отдельную табличку genre
---
genre_id
genre_title
Заводим табличку для указания соответствийxref_music_genre
---
music_id
genre_id
Все.UPDЕсли человек вводит запрос вида: "trance and house", то как правильно делать в таком случае выборку, чтобы в результате были выведены все треки, в жанрах которых встречаются слова из этого запроса? В данном случае должны вывестись все треки из жанра house и trance.select music_id 
from xref_music_genre 
where genre_id IN (5,7) 
group by music_id 
HAVING count(genre_id)=2
С изначальным вопрос я все понял, всем спасибо! 
Теперь еще вопрос:
Если человек вводит запрос вида: "trance and house", то как правильно делать в таком случае выборку, чтобы в результате были выведены все треки, в жанрах которых встречаются слова из этого запроса? В данном случае должны вывестись все треки из жанра house и trance.$result = mysql_query("SELECT * FROM xref_music WHERE genre_id = 7 OR genre_id = 5");
Цифры 7 и 5 - это соответственно id жанров trance и house.
Т.е. я беру строку trance and house, разбиваю ее по словам. А дальше? Как-нибудь убрать из нее все лишнее (and) и оставить только существующие жанры (house, trance)?
Потом загнать каждый жанр по отдельности в запрос как я показал в своем примере? Это по феншую будет?