sql - SQL左连接忽略第一个字母
问题描述
我正在尝试使用表 a 中的“订单 ID”和表 b 中的“订单参考”加入 2 个表。
问题是订单完全是数字“12345”,订单参考在相同数字“a12345”之前会有一个字母</p>
想知道是否有办法进行连接但忽略表 b 中的字母?
欢迎任何想法
谢谢
解决方案
当然。你在 JOIN 中看到的东西是真实的陈述;他们根本不需要与表数据有任何关系
A JOIN B ON EXTRACT(HOUR FROM NOW()) = 12
这会将 A 中的所有行与 B 中的所有行连接起来,但仅在每天一小时内(您必须在 12:00 到 12:59:59 之间运行它) - 这与表数据无关
想象一下,连接工作就像“A 中的每一行都与 B 中的每一行连接,然后对结果中的每一行评估真值语句。如果真为假,则丢弃该行。因此 anON 1=1
是有效的并包括所有行,因为永远都是真的。。
因此,将 A 中的所有行加入到 B 中,其中 B 是开头带有“a”的行,如下所示:
A JOIN B ON A.ID = SUBSTR(B.ID, 2, LENGTH(B.ID) - 1))
不过要小心;操纵表数据可以杀死索引的使用
还要考虑你可以做B.ID LIKE CONCAT('_', A.ID)
推荐阅读
- mysql - 为每个组选择第一行和最后一行并取MySQL中的列值差异?
- javascript - 如何使用 jQuery 和 Ajax 拆分来自选择元素的数据
- javascript - 以编程方式将内联 onfocus 和 onblur 添加到输入/div
- python - pandas - 通过模将列表转换为列
- python - 使用 Python 和 OpenCV 的万花筒效果
- flutter - Flutter 从 API 快照中获取数据。hasError
- macos - 如何通过 MACOS cli 确定 nss(空间流的数量)
- python - 当 x 在另一列中时,如何找到一列中的最大值?
- python - Stringtoknow="value" 我想在变量 stringtoknow 在 python 中更改值时运行函数
- jquery - 有人可以告诉我为什么 $(this).attr('id') 不起作用