是否可以在具有某些共享值的两列上使用 LIKE 或“=”?

Is it possible to use LIKE or " = " on two columns with SOME sharing values?

在我的数据库中,我有以下 tables:

CUS
Name varchar(20)
CustomerID varchar(8)

PET
Name varchar(20)
PetID varchar (8)

CUS Table
| Name | CustomerID  |
----------------------
| John | AC001       |

PET Table
| Name     | PetID   |
----------------------
| Snuffles | AC001-01|
| Puffles  | AC001-02|

您可以看到 Snuffles & Puffles 属于 John,因为他们的 PetID 与 John 的 CustomerID 相同,但多了 3 个字符。

我的问题:

有没有办法让我在列上使用“=”或“LIKE”:

SELECT CUS.Name , PET.Name, PetID
FROM CUS, PET
WHERE PetID = CustomerID;

这样我得到的结果类似于:

WHERE PetID LIKE 'AC%' AND CustomerID LIKE 'AC%';

table 将显示的位置:

| Name     | Name     |  PetID   |
-----------------------------------
| John     | Snuffles | AC001-01 |
| John     | Puffles  | AC001-02 |

无需为每个 owner/pet.

显式写下通配符条件

是的,您可以使用 LIKE 作为连接条件:

SELECT CUS.Name, PET.Name, PetID
FROM CUS
JOIN PET
  ON PetId LIKE CONCAT(CustomerId,'%');

db<>fiddle demo