我正在尝试执行以下查询:
SELECT * FROM table_name_here WHERE Date LIKE %Jan % 2014%
现在,表名不同并隐藏在这里,但它不会通过。它说我的语法在%Jan % 2014%
我可以让它工作,所以我知道连接有效:SELECT * FROM table_name_here
问题在于WHERE
和LIKE
部分。
我还尝试在我的托管网站数据库管理工具上执行此操作:
SELECT *
FROM `table_name`
WHERE `Date` LIKE '%Jan % 2014%'
那一个有用,所以我真的很无能:)
那么,有什么想法吗? :)感谢提前
答案 0 :(得分:2)
你有两个语法错误,首先单词Date
是一个关键字,所以需要包装,你需要在字符串周围引用,如下所示:
SELECT * FROM table_name_here WHERE `Date` LIKE "%Jan % 2014%"
答案 1 :(得分:1)
假设date
开始存储为日期/日期时间列,请不要在其上使用like
。 like
使用某种本地格式隐式将其转换为字符串。
相反,要明确:
where month(`date`) = 1 and year(`date`) = 2014
或
where date_format(`date`, '%Y-%m') = '2014-01'
至于您的原始问题,您发现引号在字符串常量周围很重要。我建议使用单引号(而不是双引号),因为单引号是ANSI标准字符串分隔符。
答案 2 :(得分:0)
您的LIKE
匹配项需要引号:
SELECT * FROM table_name_here WHERE Date LIKE "%Jan % 2014%"
答案 3 :(得分:0)
如果您使用的是DATE数据类型,则可以使用此
SELECT * FROM table_name_here WHERE 'Date' LIKE '2014-01-%'
这是mysql如何存储DATE值:'YYYY-MM-DD'例如。 “2014年1月7日。