繁体   English   中英

MySQL 上的 LIKE function 没有找到相似的词

[英]LIKE function on MySQL not picking up similar words

我目前正在使用 db-fiddle.com 来练习我的 SQL 代码。

我有两张桌子。

'顾客':

客户ID 实践名称 地点 练习类型 子参考
1 冬宫兽医 埃塞克斯 农场 P030022
2 西区兽医 爱丁堡 伴侣 P030023

“样品”:

Samples_id 子参考 样品类型 检测 FAM 维克 凝胶结果
1 P030022_1 拭子 多聚酶链反应 38.72 35.00 null
2 P030022_2 拭子 多聚酶链反应 34.23 30.05 null
3 P030022_3 拭子 多聚酶链反应 34.00 29.99 null
4 P030022_4 拭子 多聚酶链反应 30.00 37.10 null

(Samples 中有更多 subref 示例和更多列,但我不想弄乱页面。)

可以有多个样本作为一个子引用的一部分,这就是为什么我用下划线将它们制作成两个表来定义每个样本的结果。

我希望能够看到属于 PracticeName 旁边的 Subref 的所有示例。 所以最终结果是 Samples 表,但附加了 PracticeName 列。

抱歉,如果这不是格式化事物的最佳方式,但我是一个非常新的初学者。

我尝试了这两个代码,这些代码显然已执行,但结果中没有显示任何内容:

SELECT * FROM Customers, Samples WHERE Customers.Subref LIKE (Samples.Subref + '%');

SELECT * FROM Customers, Samples WHERE Customers.Subref LIKE concat (Samples.Subref, '%');

我还尝试创建另一个表来执行多对多查询,但它再次执行但没有结果:

  Customers_id INT UNSIGNED NOT NULL
  , Samples_id SMALLINT UNSIGNED NOT NULL
  , PRIMARY KEY pk_Customers2Samples (Customers_id, Samples_id)
);
WHERE Customers.Subref like 'Samples.Subref%';

我不确定我做错了什么。

任何建议表示赞赏,请善待。

查看您的数据示例..由于最后 _n 的表示,您应该使用逆向(匹配来自客户的字符串 + % 像示例中的字符串)

SELECT * 
FROM Customers
INNER JOIN Samples ON  Samples.Subref LIKE concat (Customers.Subref, '%')

您的数据中 Sample 的字符串包含更多聊天尊重客户的价值然后无法计算.. 相反应该有效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM