這將在MySQL 5做工精細:在MySQL 4別名爲了不工作BY子句
SELECT INSTR(foo, 'Bar') as foobar
FROM Table
ORDER BY CASE WHEN foobar = 1 THEN foo END DESC;
卜,我得到的錯誤:
ERROR 1054 (42S22): Unknown column 'foobar' in 'order clause'
但是,如果我改變子句這,它將在兩個版本上工作:
SELECT INSTR(foo, 'Bar') as foobar
FROM Table
ORDER BY CASE WHEN INSTR(foo, 'Bar') = 1 THEN foo END DESC;
爲了確保兼容性,我必須始終使用第二種方式嗎?
重複http://stackoverflow.com/questions/10799558/invalid-column-name- order by-on-alias-of-subquery –
感謝@stackmonster,我不知道如何描述錯誤。 – vmassuchetto
肯定不直觀。 –