2017-01-31 8 views
0

私は現在SQLクエリで論理エラーが発生しています。私は年の間にレコードの姓と名を検索しているときにレコードを表示したいと思います。ここでsql - クエリのクエリ

は私のコードです:

SELECT 
    * 
FROM 
    tablename 
WHERE 
    LastName LIKE 'value%' 
     AND FirstName LIKE 'value%' 
     AND Year BETWEEN '1900' AND '2017' 

は、私はこれをどのように行うのですか?

+0

を使用* "私はこれをどうやってやるの?" - 今はやっていないの?何がここで働いていないのですか?これには括弧を使用する必要があるかもしれません。 –

+1

'value'を見るのが「私のために書いてください」と思っていて、「dbスキーマがどのようになっているかを推測しています」という質問があります –

+0

何が問題なのですか?クエリは正常に見えます。あなたが得るべきではない行がありますか?あなたが取得する必要がある行を取得していませんか?例を表示する。 –

答えて

0

おそらく、年の列は整数として格納されます。その場合は、年の値1900と2017の前後の引用符を削除すると、クエリは期待通りに機能するはずです。

+2

引用符を削除するとどのような違いがありますか? MySQLはそれを補償するでしょう –

+1

@ Fred-ii-はい、しかし、なぜそれは最初の場所で正しいですか? –

0

あなたはSQLを使用している場合は、この方法を試してください。

の1-年は

SELECT 
* 
FROM 
tablename 
    WHERE 
    LastName LIKE 'value%' 
    AND FirstName LIKE 'value%' 
    AND columnx >= 1900 AND columnx <= 2017 

2 - intとして格納されている場合、日付が01-01-1999のように保存されたときに、次の

SELECT 
* 
FROM 
tablename 
    WHERE 
    LastName LIKE 'value%' 
    AND FirstName LIKE 'value%' 
    AND year(columnx) >= 1900 AND year(columnx) <= 2017