sql - 使用多个可选字段过滤器的 SQL 关键字搜索(元数据库)
问题描述
我是 SQL(自学)和 StackOverflow 的新手。因此,如果有一点新词,我深表歉意。
目前,我正在尝试在 Metabase 中编写一个查询,允许用户在特定日期期间搜索多个字段,而不会 100% 准确地搜索他们正在搜索的内容,有点像关键字搜索。
Search requests:
Date Time...(Required)
User...(optional)
String A...(optional)
String B...(optional)
String C...(optional)
SELECT
a.DateTime,
a.User,
b.StringA,
b.StringB,
b.StringC
FROM TableA a
JOIN tableB b
ON TableAid = TableBid
WHERE a.datetime between {{start}} and {{end}}
[[AND a.User = {{user}}]]
[[AND b.StringA = {{StringA}}]]
[[AND b.StringB = {{StringB}}]]
[[AND b.StringC = {{StringC}}]];
上面的语法似乎可以正常工作,但前提是它们将完整的单词输入到各自的字段中。我正在寻找使用 Like 运算符来检索列 AB 和 C 中具有与给定字符串相似的字符串的所有行。
我尝试使用
[[AND b.StringA = Like ('%'+{{StringA}}+'%')]]
和
[[AND b.StringA = Like CONCAT('%'+{{StringA}}+'%')]]
无济于事,并在此处的某些线程中尝试了一些@StringA 解决方案,但没有任何运气。
有人可以帮我吗?任何帮助将不胜感激。
解决方案
因此,经过一番反复试验后,我实际上最终弄清楚了这一点,并想回来更新线程,以防其他人遇到同样的问题。
而不是
[[AND b.StringA = Like CONCAT('%'+{{StringA}}+'%')]]
它需要看起来像
[[and b.StringA like (concat('%',{{StringA}},'%'))]]
一个小的语法错误,但这让我有点难过。
无论如何,我感谢人们试图提供的所有帮助,并希望这对将来的某人有所帮助。
推荐阅读
- ios - XCTestCase with Auth0:如何解除安全警报“XXXX”想要使用“auth0.com”登录
- c# - 无法加载 DLL 'mclmcrrt9_4.dll'
- c# - C# Windows Forms App - 如何检测非窗体窗口关闭
- python-3.x - 是否有用于变量名称的 Python (3) lint,例如“len”(内置函数/保留字等)
- java - sim.start() 中的 RinSim 不一致 NullpointerException GraphSpatialRegistry
- php - 用PHP将HTML标签中的字符串中的第一个单词包装起来?
- css - 显示:flex 不工作
- c++ - C++ 项目需要用证书签署文件 (RSA-SHA256)
- qt - 为什么我的 Enaml ImageView 不能按比例缩小?
- json - 在 JSON 端点响应中返回 Doctrine 实体