2016-05-11 5 views
-6

2016年にのみ検索したいです。複数列でのSQLの検索

select from products 
WHERE year="2016" 
and name like '%"& name &"%' 
or size like '%"& Size &"%' 
+0

実際に何をしようとしていますか? – Wanderer

+0

二重引用符は識別子のためのもので、リテラルには一重引用符を使用します。 (あなたの場合、 '' 2016 "'はその名前の列として読み込まれます...) – jarlh

+0

サンプルデータを提供し、出力します。 –

答えて

0

入れは、あなたのor -ed条件の周りに括弧、および(jarlhにより示唆されるように)一年に一重引用符に二重引用符を変更:

select from products 
WHERE year='2016' 
and (
    name like '%"& name &"%' 
    or size like '%"& Size &"%' 
) 

ああ、ケースには、これはVBです。 NETを使用し、nameSizeをパラメータなどから取得した場合は、escaping themをSQLインジェクションを防ぐために確認してください(これが他の場所でまだ行われていない場合)。

+0

ありがとう。 – mrzlgns

0

LIKEには二重引用符や引用符は必要ありません。

SELECT * 
FROM products 
WHERE year = '2016' 
AND (name LIKE '%name%' OR size LIKE '%size%'