2016-05-22 5 views
1

У меня есть следующая таблица.SQL Ordering по значению поля

enter image description here

Просто я хочу, чтобы сделать заказ meta_key где значение LoginTS. его немного отвлекает.

ORDER BY meta_value(where meta_key is LoginTS) DESC.

Im извините, если его не достаточно ясно ..

Ожидаемый результат: enter image description here

+0

Вы можете добавить ожидаемый результат –

ответ

3
SELECT * 
FROM mytable 
WHERE `meta_key`= 'LoginTS' 
ORDER BY `meta_value` DESC 

SQL FIDDLE DEMO 1

Если вы хотите, чтобы получить обратно все таблицы, но по заказу конкретного столбца, попробуйте следующее:

SELECT 
* 
FROM 
    myTable 
    ORDER BY CASE WHEN `meta_key`='LoginTS' THEN 0 ELSE 1 END 

SQL FIDDLE DEMO 2

+0

MySQL возвратил пустой набор результатов (т. Е. Нулевые строки). (Запрос занял 0,0006 сек), не знаю, почему tho –

+0

это «LoginTS», но не «LoginTs». «s» не должно быть в нижнем регистре. –

+0

@Saeid Khaleghi попробуйте снова, я исправил запрос –

0

WHERE должен быть перед ORDER BY, попробуйте следующее:

WHERE meta_key = 'LoginTS' ORDER BY meta_value DESC 
+0

Должно быть '..ORDER BY meta_value DESC' –

+0

мачта будет DESC !!! –

+0

Это был ASC, когда я скопировал его из вопроса ... Я исправил его – M4tini

0

С вами хотите заказать по asc, вы можете попробовать что-то вроде этого

order by case when meta_key='LoginTS' then 0 else 1 end 
+0

Tyvm, работал как шарм. –

+0

@SaeidKhaleghi Как это даст вам ожидаемый результат. У вас есть только две записи, где 'meta_key = 'LoginTS'', но это приведет к появлению всех записей –

+0

@Prdp. Я просто использовал это, и я получаю точный результат, как я хотел. –

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