2014-02-20 74 views
0

我有一個查詢使用多個MAX語句,在使用單個MAX語句時工作。我卡住了。以下作品:MySQL多個MAX語句導致語法錯誤?

SELECT 
MAX(CASE WHEN meta_key = '_pronamic_google_maps_latitude' THEN meta_value END)lat, 
FROM wp_postmeta WHERE post_id IN (SELECT id from wp_posts where post_name = 'Idaho') 

但這並不:

SELECT 
MAX(CASE WHEN meta_key = '_pronamic_google_maps_latitude' THEN meta_value END)lat, 
MAX(CASE WHEN meta_key = '_pronamic_google_maps_longitude' THEN meta_value END)long 
FROM wp_postmeta WHERE post_id IN (SELECT id from wp_posts where post_name = 'Idaho') 

有什麼不對?

+4

不工作如何?你會得到一個語法錯誤?錯誤的結果? 'long'是一個保留字,除非你引用它,否則不能用作別名...''... as'long'''。 –

+2

......這正是我們使用緯度和經度的原因 – Strawberry

+0

謝謝大家 - 我一直在看這太久。 –

回答

1

由於語法高亮提示long爲reserved word,所以您必須將其轉義以將其用作別名。 Example

SELECT 
    MAX(CASE WHEN meta_key = '_pronamic_google_maps_latitude' THEN meta_value END) AS lat, 
    MAX(CASE WHEN meta_key = '_pronamic_google_maps_longitude' THEN meta_value END) AS `long` 
FROM wp_postmeta WHERE post_id IN (SELECT id from wp_posts where post_name = 'Idaho')