2011-09-15 3 views
1

私は現在、1つのサーバーから別のサーバーに大きなPHPベースのWebアプリケーションを移動しています。古いサーバはMySQL 5.0.51a(SuSE Linux上)を実行しており、新しいサーバはMySQL 5.5.15(ArchLinux上)を実行しています。データベースのアップグレード後にMySQLで列挙型を選択できないのはなぜですか?

今、新しいMySQLは次の文(構文エラー)文句を言っている:

SELECT DISTINCT(field) FROM config WHERE range='global' ORDER BY field 

私はテストのビットを行なったし、次短縮文はまだ(構文エラーで)失敗したことが判明:

SELECT * FROM config WHERE range='global' 

残念ながら、これは完全に法的なSQLのようです。私の推測では、それは列rangeのタイプ(enum('global', 'user'))と関係があります。他の列(例: intの列は完全に正常に動作します。

私はすなわち、このように、WHERE句に列名を追加し、ローカルでこの問題を解決する方法を知っている:

SELECT * FROM config WHERE config.range='global' 

しかし、私は、列名を追加し、コード全体を通過する必要はありません必要に応じてSQL文に変換します。したがって


私の質問:

どのように私はややずさん5.0.51a構文を受け入れるためのMySQL 5.5.15を教えていますか?

+0

それだけで「構文エラー」と言うか、より詳細なエラーの説明がありますか? –

答えて

1

RANGEあなたのフィールドを守るのMySQL 5.5 see list

で予約語である、それは仕事をsould:

SELECT * FROM `config` WHERE `range`='global' 
関連する問題