2014-03-25 42 views
2

嗨,在我的項目中,我有一個要求,在子句中按順序在mysql查詢中使用索引關鍵字。Mysql使用索引關鍵字作爲列名

我的查詢看起來是這樣的:

 SELECT asset.id, day_part.category, asset.site_id, site.name, 
      environment.category_1, environment.category_2, county.town, county.county, 
      site.site_id as siteid, media_owner.contractor_name, 
      IF (audience_category.impact IS NULL, 0, audience_category.impact) as impact, 
      tv_region.id as tv_region_id, 
      metropolitan.id as metropolitan_id, 
      IF (
       price.price_site = -1, 
       IF(
        price.price_tv_region = -1, 
        price.price_nation, 
        price.price_tv_region 
       ), 
       price.price_site 
      ) AS price, 
      format.name AS format, 
      format.id AS format_id 
     FROM asset 
     JOIN site ON asset.site_id = site.id 
     JOIN day_part ON asset.day_part_id = day_part.id 
     JOIN media_owner ON site.media_owner_id = media_owner.id 
     JOIN area ON site.area_id = area.id 
     JOIN environment ON site.environment_id = environment.id 
     JOIN price ON site.price_id = price.id 
     JOIN postcode ON site.postcode_id = postcode.id 
     JOIN county ON postcode.county_id = county.id 
     JOIN tv_region ON postcode.tv_region_id = tv_region.id 
     JOIN metropolitan ON postcode.metropolitan_id = metropolitan.id 
     LEFT JOIN temp_media_index_1395751552 as audience_category 
      ON audience_category.site_id = site.id 
     JOIN frame_grouped ON frame_grouped.site_id = site.id 
     JOIN format ON frame_grouped.format_id = format.id 
     WHERE frame_grouped.format_id = 3 

     ORDER BY index DESC 
     LIMIT 100 OFFSET 0 

此查詢給這個錯誤(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 'index DESC\n LIMIT 100 OFFSET 0' at line 35")

但是當我by子句從查詢中刪除訂單,它不給任何錯誤。

任何人都可以請建議如何在我的查詢中使用mysql的index關鍵字?

+0

你應該刪除'偏移0',只是嘗試.. – jmail

+0

我認爲,你從哪裏得到的'index'像'tablename.index'或提alies名字像'somedetails AS索引' – jmail

回答

12

索引是reserved word。引用它(與反單引號):

ORDER BY `index` DESC 
+0

我已經試過這個,但它不起作用 –

+0

當你引用它時會得到什麼錯誤?我看起來很好。確保在查詢之前或之後沒有任何引號或其他字符。 – alexn

+1

@question - 你是用引號還是後面的蜱來包圍它?應該回來滴答。 – Kickstart