我读了多篇文章,发现我的语法没有问题,有人能指出错误吗?
我正在一个wordpress数据库上用php myadmin测试一些查询。我正在查询的表的meta\u键为“listing end date”,meta\u值为“2018/06/30”。
我的查询如下所示:
SELECT * FROM `table`
WHERE `meta_key` LIKE 'Listing-End-Date'
AND STR_TO_DATE('meta_value', '%Y/%m/%d') > CURDATE()
它返回0个结果。为了测试str\u to\u date格式,我做了一个新的查询:
SELECT `meta_key` , STR_TO_DATE( 'meta_value', '%Y/%m/%d' )
FROM 'table'
WHERE `meta_key` LIKE 'Listing-End-Date'
我得到了预期的返回结果1,但日期为空。是因为我使用php管理还是我输入了错误的内容?
3条答案
按热度按时间rxztt3cl1#
您试图转换字符串值
'meta_value'
到目前为止,这显然是失败的。你可能想引用一个专栏meta_value
从表meta_key
取而代之的是:我删除了backticks,因为这里不需要它们(除了
table
). 不过,即使可以使用backticks,也不应该用保留关键字命名表。另外,需要注意的是
meta_key LIKE 'Listening-End-Date'
等同于平等比较meta_key = 'Listening-End-Date'
因为你没有做部分搜索(你没有使用%
任何地方)。qnzebej02#
元值应该勾选,而不是在字符串\u to \u date中引用
d7v8vwbk3#
尝试使用日期格式()
检查此页