![](/img/trans.png)
[英]MYSQL: Like Method, Similar Words - But Don't Show the Searched Word
[英]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.