2015-04-06 3 views
-2

У меня проблема с моим MySQL Query, я использую этот случай, чтобы дать ему порядок сортировки. Порядок зависит от серийного номера.MySQL CASE с LIKE

Мой запрос:

SELECT DISTINCT id, price, itemnr, itemnr_ori, link, name, setinfo 
CASE WHEN itemnr_ori LIKE '%-%-s%' THEN 0 WHEN itemnr_ori LIKE 'z-%-%' THEN 1 
WHEN itemnr_ori LIKE 'ak-%' THEN 2 
WHEN itemnr_ori LIKE 'fdc-%' THEN 3 
WHEN itemnr_ori LIKE 'max-%' THEN 4 
ELSE 5 END 
AS sort_order FROM items2 WHERE category1 = 'Overige' AND category2 = 'Afrikaanse Overige' ORDER BY sort_order ASC, price ASC, itemnr_ori ASC 

Я получаю эту ошибку:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE WHEN itemnr_ori LIKE '%-%-s%' THEN 0 WHEN itemnr_ori LIKE 'z-%-%' THEN 1 WH' at line 1 

Что я делаю неправильно?

+1

Если вы собираетесь тратить любое время с MySQL привыкают внимательно читать сообщения об ошибках - они обычно говорят вам, где именно ошибка в вашем код. В этом случае первая ошибка относится к слову CASE, поэтому вы можете видеть, что вы пропустили запятую. Научитесь любить сообщения об ошибках. –

ответ

5

Вы пропускаете запятую, как этот

setinfo, 
CASE WHEN .. END 
+0

Спасибо, что исправил мою действительно тупую ошибку ... :) – user1717483

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