0

私はちょうどSQLに入っています。少し混乱して以下を食べました。多分あなたは助けることができます。このクエリは機能します

SELECT topics.topic FROM topics 
LEFT JOIN daybook 
ON topics.topic_id = daybook.topic_id
WHERE daybook.daybook_id = 7

このクエリは失敗します

SELECT topics.topic FROM topics 
LEFT JOIN daybook 
ON topics.topic_id = daybook.topic_id
WHERE daybook.test = “test text”

理由がわかりません。daybook.test は文字列フィールドです。文字列が渡されます。改善が見られない場合は、すべての種類を試しました。手伝ってくれますか?

ありがとうG

4

2 に答える 2

1

SQL文字列リテラルを区切るには、二重引用符ではなく一重引用符を使用します。つまり、この場合は「テストテキスト」を使用します。

于 2012-08-19T16:02:32.493 に答える
0

この「テスト テキスト」のように一重引用符を使用します

SELECT topics.topic FROM topics 
LEFT JOIN daybook 
ON topics.topic_id = daybook.topic_id
WHERE daybook.test = 'test text';

重要:

sql/mysql の varchar 値の前後に '' (一重引用符) を使用する必要があります。ただし、intの場合、クエリは一重引用符の有無にかかわらず同じように機能します

理由:

varchar の周りに '' を使用しない場合、クエリはそれを variable として受け取ります。エラーが発生します

于 2012-08-19T16:12:13.367 に答える