这将在 MySQL 5 中正常工作:
SELECT INSTR(foo, 'Bar') as foobar
FROM Table
ORDER BY CASE WHEN foobar = 1 THEN foo END DESC;
在 MySQL 4 中,我收到错误:
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;
为确保兼容性,我是否必须始终使用第二种方式?