2017-01-31 176 views
0

我目前在我的sql查詢中有一個邏輯錯誤。我想在查找姓氏和年份之間記錄的名字時顯示記錄。sql - 搜索查詢

這裏是我的代碼:

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

我該怎麼辦呢?

+0

* 「我該怎麼做?」 - - 你現在不是這樣做嗎?什麼不在這裏工作?您可能還需要爲此使用括號。 –

+1

看到'value'看起來更像是「爲我寫的」和「猜測我的數據庫模式是什麼樣的」類型的問題 –

+0

什麼是行不通的?查詢看起來很好。你是否得到了你不應該得到的行?你沒有得到你應該得到的行嗎?顯示示例。 –

回答

0

也許你的年份列存儲爲整數。如果是這樣,請刪除年份值1900和2017附近的引號,查詢應該按照您的預期工作。

+2

刪除引號有什麼區別呢? MySQL會賠償那個 –

+1

@ Fred-ii-是的,但爲什麼不把它放在第一位呢? –

0

,如果你使用的是SQL,試試這個:

1年時被存儲爲INT

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

2-時的日期存儲像01-01-1999然後使用以下

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