我有一个查询在数据模型的某些字段中查找搜索词。
eventsQuery.where = 'Name contains :SearchTerm OR ' +
'Description contains :SearchTerm OR ' +
'ID contains :SearchTerm OR ' +
'Owner contains :SearchTerm';
我想在搜索中添加日期字段。
'Date contains :SearchTerm OR ' +
这样做的正确方法是什么?仅供参考“日期”已被定义为数据模型中的日期字段。
答案 0 :(得分:0)
我不确定是否可以使用查询生成器,但看起来它适用于Calculated SQL Model:
您的SQL查询看起来与此类似:
SELECT
Id,
Name,
Date
FROM
Test
WHERE
Name LIKE :SearchTerm OR
Date LIKE :SearchTerm OR
MONTHNAME(Date) LIKE :SearchTerm OR
DAYNAME(DATE) LIKE :SearchTerm
备注强>
要使其适用于日期,您的搜索字词应如下所示
2018-12-31%
- 搜索确切日期%2018%
- 搜索所有2018年的记录请在此处详细了解MySQL中的模式匹配:https://dev.mysql.com/doc/refman/5.7/en/pattern-matching.html
在您的内部,您可以向用户介绍此查询语法,也可以在将搜索词传递给搜索查询之前对其进行智能分析和格式化。您可以在Project Tracker模板中找到复杂的计算SQL搜索查询示例。我还会考虑使用REGEXP
代替LIKE
,具体取决于您的搜索要求。