2011-11-11 161 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

相关问题