2013-02-08 4 views
1

У меня есть следующий запрос mysql для функции поиска. У меня в моих данных 3 разных типа учетной записи, которые мне нужно показать в определенном порядке. Для этого я использовал ORDER BY FIELD(profiltype,2,1,3). Это прекрасно работает и без проблем, однако в этих результатах я также необходимо заказать различные столбцы в приоритете, как:Заказ Результаты поискового запроса mySQL

1. name2 
2. a_z_feld1 
etc. 

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

SELECT * FROM main_users 
WHERE ((name2 LIKE %s) 
OR (a_z_feld1 LIKE %s) 
OR (a_z_feld2 LIKE %s) 
OR (a_z_feld3 LIKE %s) 
OR (city LIKE %s) 
OR (content_stellenvor LIKE %s) 
OR (main_content LIKE %s)) 
AND levelmember <> 1 
ORDER BY FIELD(profiltype,2,1,3) ASC, 
a_z_feld1 ASC, a_z_feld2 ASC, a_z_feld3 ASC 
+0

попытаться отступа запрос так, чтобы мы могли прочитать его – Ibu

+0

Предоставьте запрос MySQL в одиночку, чтобы быть более удобным для чтения. – Slowcoder

+0

приоритет WHICH столбцов? Ваш код заставляет мои глаза кровоточить. –

ответ

0

Основываясь на ваш комментарий, вам необходимо включить name в order by:

ORDER BY FIELD(profiltype,2,1,3) ASC, name2, a_z_feld1 ASC, a_z_feld2 ASC, a_z_feld3 ASC 
+0

да ... но это тоже не работает. Я просто забыл это взять. Простым решением было бы просто: ORDER BY profiltype = 2 DESC, profiltype = 1 DESC, profiltype = 3 DESC, name2 LIKE% s DESC, a_z_feld1 LIKE% s DESC, a_z_feld2 LIKE% s DESC, a_z_feld3 LIKE% s DESC, main_content LIKE% s DESC, content_stellenvor LIKE% s DESC , но это не очень хороший запрос –

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