2011-11-11 206 views
0

這是我的查詢爲什麼mySQL在我的LIKE查詢中返回0結果?

SELECT * FROM `orders` WHERE `order_datetime` LIKE '2011-11-11' LIMIT 0 , 30 

我有一個記錄已經與價值觀

order_datetime 
2011-11-11 02:07:07 
2011-11-11 01:07:07 
2011-11-11 00:07:07 
2011-11-11 11:07:07 

它只是返回0的結果。顯然,我不想搜索時間部分,因爲它總是在變化。我只想選擇2011-11-11內的所有記錄。

回答

4

如果order_datetime是一個DATETIME字段:

SELECT * FROM `orders` WHERE DATE(`order_datetime`) = '2011-11-11' LIMIT 0 , 30 
+0

爲什麼喜歡而不是簡單=? – Nanocom

+0

啊,你是對的。編輯。 – riha

+0

我發現這是最好的解決方案。與$ todayTotal = mysql_query(「SELECT * FROM'orders'混合在一起WHERE YEAR(order_datetime)='」。$ year。「'AND MONTH(order_datetime)='」。$ month。「'AND DAY(order_datetime)=' 」。$的一天。 「'」); - 使用strtotime()進一步分解它;謝謝 – TheBlackBenzKid

-1

Like應與通配符%?一起使用。在您的例子請求應

SELECT * FROM `orders` WHERE `order_datetime` LIKE '%2011-11-11%' LIMIT 0 , 30 

%意味着「任何字符,任意次數」

?意味着「任何字符,恰好一次」

+0

有人敢解釋downvoting? :) – J0HN

+1

在日期時間字段中使用字符串搜索是緩慢和不必要的。只需使用爲日期操作而設計的功能即可。 – JJJ

相關問題