1

SELECT列名が「値」である Select ステートメントを使用しているときに問題に直面しており、演算子と演算子を使用して「値」列に基づいて値を取得したいと考えていますLIKE

コード:

 SELECT compo.clecompo
  FROM    compo compo
       ON (compo.clecompo = metadatas_compo.clecompo)
   AND ((metadatas_compo.value LIKE '%%NOM%%')
    OR (metadatas_values.metavalues_name LIKE '%%NOM%%'))

value キーワードを強調表示しました。これは、結果が得られないクエリのサンプルです。注:(metadatas_compo.value) metadatas_compoはテーブル名です。

4

1 に答える 1

2

バッククォートを使用してMySQLでリテラルをエスケープします `

SELECT compo.clecompo FROM compo compo ON (compo.clecompo = metadatas_compo.clecompo) AND ((metadatas_compo.`value` LIKE '%%NOM%%') OR (metadatas_values.metavalues_name LIKE '%%NOM%%'))

ただし、テーブル/列名には予約済みリテラルを使用しないことをお勧めします。予約語のリストについては、次のとおりです。

http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

于 2012-04-18T11:50:33.070 に答える