5

既存のスクリプトの列をテンプレート ファイルにプルしていますが、すべてうまく機能しています。

唯一の問題は、このスクリプトには という列がorderあり、すべての行にはその列に番号があり、どれが一番上にあるのかなどを示すことです。たとえば、クエリを " ORDER BY name" に設定すると、すべて正常に動作しますが、 " " を使用するORDER BY orderと、SQL エラーが発生します。
という列を持たないことはできますorderか? スクリプトの一部であるため、列名を変更できません。

それを回避する方法はありますか?

これは私のSQLクエリの行です:

SELECT * FROM categories WHERE hide = 0 ORDER BY order 
4

7 に答える 7

10

orderは SQL のキーワードです。したがって、キーワードを名前として使用したい場合は、その前後にバッククォート文字を使用します:

SELECT * FROM categories WHERE hide = 0 ORDER BY `order`

それを試してください:)

于 2012-10-08T19:28:41.910 に答える
0

バッククォートを使用してみてください:

SELECT * FROM `categories` WHERE `hide` = 0 ORDER BY `order`

ORDER は SQL の予約語です。予約語を列名として使用できますが、参照するときはバッククォートで囲む必要があります。この問題が発生しないように、すべての列名をバッククォートで囲むことをお勧めします。

于 2012-10-08T19:28:27.433 に答える
0

列名の周りにバックティックを使用してみてください。

于 2012-10-08T19:28:50.087 に答える
0

マニュアルから:

予約語を引用すると、識別子として使用できます。

したがって、次のように使用できます。

SELECT * FROM categories WHERE hide = 0 ORDER BY `order`
于 2012-10-08T19:29:44.080 に答える
0

ASorderは SQL キーワードです。バッククォートを使用して、フィールド識別子として適切にエスケープする必要があります。

SELECT ... FROM ... ORDER by `order`
于 2012-10-08T19:31:08.567 に答える